![]() |
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 |
| struct | [struct].caps |
Static Public Member Functions | |
| static bool | probe (QRhiMetalInitParams *paramsparams) |
| static QRhiSwapChainProxyData | updateSwapChainProxyData (QWindow *window) |
| static QSize | outputSizeForTarget (QRhiRenderTarget *targettarget) |
| Static Public Member Functions inherited from QRhiImplementation | |
| static QRhiImplementation * | newInstance (QRhi::Implementation impl, QRhiInitParams *paramsparams, QRhiNativeHandles *importDevice) |
| static const QRhiShaderResourceBinding::Data * | shaderResourceBindingData (const QRhiShaderResourceBinding &binding) |
| static QRhiShaderResourceBinding::Data * | shaderResourceBindingData (QRhiShaderResourceBinding &binding) |
| static bool | sortedBindingLessThan (const QRhiShaderResourceBinding &aa, const QRhiShaderResourceBinding &bb) |
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 | caps |
| QRhiMetalData * | d = nullptr |
| Public Attributes inherited from QRhiImplementation | |
| QRhi * | q |
| bool | debugMarkers = false |
| bool | timestamps = false |
| int | currentFrameSlot = 0 |
| bool | inFrame = false |
| QRhiCommandBuffer * | currentOffscreenCb = nullptr |
| QRhiAdapter * | requestedRhiAdapter = nullptr |
| QHash< QRhiResource *, bool > | resources |
Static Public Attributes | |
| static const int | SUPPORTED_STAGES = 5 |
| Static Public Attributes inherited from QRhiImplementation | |
| static const int | MAX_SHADER_CACHE_ENTRIES = 128 |
| static const quint32 | MAX_BINARY_CACHE_BYTES = 16 * 1024 * 1024 |
Definition at line 389 of file qrhimetal_p.h.
| QRhiMetal::QRhiMetal | ( | QRhiMetalInitParams * | params, |
| QRhiMetalNativeHandles * | importDevice = nullptr ) |
Definition at line 577 of file qrhimetal.mm.
References QRhiMetalData::QRhiMetalData(), d, importedCmdQueue, and importedDevice.
| QRhiMetal::~QRhiMetal | ( | ) |
Definition at line 597 of file qrhimetal.mm.
References d.
| void QRhiMetal::adjustForMultiViewDraw | ( | quint32 * | instanceCount, |
| QRhiCommandBuffer * | cb ) |
Definition at line 2761 of file qrhimetal.mm.
References QMetalCommandBuffer::currentGraphicsPipeline, QMetalBuffer::d, QMetalGraphicsPipeline::d, and QMetalGraphicsPipelineData::ExtraBufferManager::HostVisible.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4268 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::d, enqueueResourceUpdates(), QMetalCommandBuffer::NoPass, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::resetPerPassState().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3281 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3298 of file qrhimetal.mm.
References currentSwapChain, QMetalSwapChainRenderTarget::d, d, QMetalSwapChain::ds, executeDeferredReleases(), finishActiveReadbacks(), QMetalRenderBuffer::lastActiveFrameSlot, QMetalRenderTargetData::ColorAtt::needsDrawableForResolveTex, QMetalRenderTargetData::ColorAtt::needsDrawableForTex, QRhiMetalData::resetAndResizeBufferStagingArea(), QMetalSwapChain::rtWrapper, and QMetalSwapChain::samples.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3456 of file qrhimetal.mm.
References d, executeDeferredReleases(), finishActiveReadbacks(), and QRhiMetalData::resetAndResizeBufferStagingArea().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4066 of file qrhimetal.mm.
References QMetalRenderTargetData::colorAttCount, QMetalTextureRenderTarget::create(), currentSwapChain, QMetalCommandBuffer::d, QMetalSwapChain::d, QMetalSwapChainRenderTarget::d, QMetalTextureRenderTarget::d, d, QMetalRenderTargetData::dsAttCount, enqueueResourceUpdates(), QMetalRenderBuffer::lastActiveFrameSlot, QMetalShadingRateMap::lastActiveFrameSlot, QMetalTexture::lastActiveFrameSlot, QMetalRenderTargetData::ColorAtt::needsDrawableForResolveTex, QMetalRenderTargetData::ColorAtt::needsDrawableForTex, QMetalCommandBuffer::NoPass, QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, and QMetalCommandBuffer::resetPerPassState().
|
overridevirtual |
Reimplemented from QRhiImplementation.
Definition at line 4845 of file qrhimetal.mm.
References QMetalIndirectCommandBufferData::builtSlot, QMetalIndirectCommandBuffer::d, d, QMetalIndirectCommandBufferData::Slot::encoded, executeBufferHostWritesForCurrentFrame(), QMetalIndirectCommandBufferData::fallbackBuild, QMetalIndirectCommandBufferData::Gpu, QMetalIndirectCommandBufferData::gpuFilled, QMetalBuffer::lastActiveFrameSlot, QMetalIndirectCommandBuffer::lastActiveFrameSlot, QMetalCommandBuffer::NoPass, qrhimtl_ensureIcbSlots(), and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 888 of file qrhimetal.mm.
|
overridevirtual |
Reimplemented from QRhiImplementation.
Definition at line 4586 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 653 of file qrhimetal.mm.
References d, importedCmdQueue, and importedDevice.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 863 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1309 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1304 of file qrhimetal.mm.
|
overridevirtual |
Reimplemented from QRhiImplementation.
Definition at line 4580 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1272 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1286 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1314 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1293 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 858 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1279 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1298 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3215 of file qrhimetal.mm.
References QMetalCommandBuffer::d, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3236 of file qrhimetal.mm.
References QMetalCommandBuffer::d, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3257 of file qrhimetal.mm.
References QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 781 of file qrhimetal.mm.
References d, executeDeferredReleases(), finishActiveReadbacks(), QRhiMetalData::icbSetupFailed, importedCmdQueue, and importedDevice.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4312 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::currentComputePipeline, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4322 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::currentComputePipeline, executeBufferHostWritesForCurrentFrame(), QMetalBuffer::lastActiveFrameSlot, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2794 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 2823 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 3179 of file qrhimetal.mm.
References QMetalCommandBuffer::currentIndexBuffer, executeBufferHostWritesForCurrentFrame(), QMetalBuffer::lastActiveFrameSlot, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4364 of file qrhimetal.mm.
References QMetalCommandBuffer::currentIndexBuffer, icbUnavailableReason(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3152 of file qrhimetal.mm.
References executeBufferHostWritesForCurrentFrame(), QMetalBuffer::lastActiveFrameSlot, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4345 of file qrhimetal.mm.
References icbUnavailableReason(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1111 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4283 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, enqueueResourceUpdates(), QMetalCommandBuffer::NoPass, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3286 of file qrhimetal.mm.
References QMetalCommandBuffer::resetPerPassCachedState().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3355 of file qrhimetal.mm.
References QMetalSwapChain::currentFrameSlot, currentSwapChain, QMetalSwapChain::d, and QMetalSwapChain::frameCount.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3481 of file qrhimetal.mm.
References d, and finishActiveReadbacks().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4253 of file qrhimetal.mm.
References enqueueResourceUpdates(), finalizeDeferredStoreActions(), QMetalCommandBuffer::NoPass, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
| void QRhiMetal::enqueueResourceUpdates | ( | QRhiCommandBuffer * | cb, |
| QRhiResourceUpdateBatch * | resourceUpdates ) |
Definition at line 3727 of file qrhimetal.mm.
References QRhiResourceUpdateBatchPrivate::activeBufferOpCount, QRhiMetalData::BufferReadback::activeFrameSlot, QRhiMetalData::TextureReadback::activeFrameSlot, QRhiResourceUpdateBatchPrivate::activeTextureOpCount, QRhiResourceUpdateBatchPrivate::BufferOp::Clear, QRhiResourceUpdateBatchPrivate::BufferOp::Copy, QRhiResourceUpdateBatchPrivate::TextureOp::Copy, currentSwapChain, QMetalBuffer::d, QMetalSwapChain::d, QMetalSwapChainRenderTarget::d, QMetalTexture::d, d, QRhiMetalData::TextureReadback::depthPlaneIsFloat, QRhiResourceUpdateBatchPrivate::TextureOp::dst, QRhiResourceUpdateBatchPrivate::BufferOp::DynamicUpdate, executeBufferHostWritesForCurrentFrame(), executeBufferHostWritesForSlot(), QRhiResourceUpdateBatchPrivate::free(), QRhiResourceUpdateBatchPrivate::TextureOp::GenMips, QRhiResourceUpdateBatchPrivate::get(), QMetalBufferData::isDeviceLocal, QMetalBuffer::lastActiveFrameSlot, QMetalTexture::lastActiveFrameSlot, QRhiMetalData::DeferredReleaseEntry::lastActiveFrameSlot, 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 1510 of file qrhimetal.mm.
References QMetalShader::argumentBufferIndex, QMetalShaderResourceBindingsData::COMPUTE, QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::d, d, QMetalShaderResourceBindingsData::FRAGMENT, QMetalShaderResourceBindingsData::Stage::Buffer::nativeBinding, QMetalShaderResourceBindingsData::Stage::Sampler::nativeBinding, QMetalShaderResourceBindingsData::Stage::Texture::nativeBinding, 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 3591 of file qrhimetal.mm.
| void QRhiMetal::executeBufferHostWritesForCurrentFrame | ( | QMetalBuffer * | bufD | ) |
Definition at line 4054 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 4029 of file qrhimetal.mm.
References QMetalBuffer::d, and QMetalBufferData::isDeviceLocal.
Referenced by enqueueResourceUpdates(), executeBufferHostWritesForCurrentFrame(), and QMetalBuffer::nativeBuffer().
| void QRhiMetal::executeDeferredReleases | ( | bool | forced = false | ) |
Definition at line 4952 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 4708 of file qrhimetal.mm.
References QMetalIndirectCommandBufferData::builtSlot, QMetalIndirectCommandBufferData::Cpu, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentIndexBuffer, QMetalGraphicsPipeline::d, QMetalIndirectCommandBuffer::d, d, QMetalIndirectCommandBufferData::fallbackBuild, QMetalIndirectCommandBufferData::gpuFilled, icbUnavailableReason(), QMetalBuffer::lastActiveFrameSlot, QMetalIndirectCommandBuffer::lastActiveFrameSlot, qrhimtl_ensureIcbSlots(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
| void QRhiMetal::finalizeDeferredStoreActions | ( | QMetalCommandBuffer * | cbD, |
| bool | passIsEnding ) |
Definition at line 2442 of file qrhimetal.mm.
Referenced by endPass(), and interruptRenderPass().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3500 of file qrhimetal.mm.
References currentSwapChain, d, executeDeferredReleases(), finishActiveReadbacks(), and QMetalCommandBuffer::NoPass.
| void QRhiMetal::finishActiveReadbacks | ( | bool | forced = false | ) |
Definition at line 5003 of file qrhimetal.mm.
References d, and QRhiMetalData::TextureReadback::depthPlaneIsFloat.
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 3051 of file qrhimetal.mm.
References QMetalCommandBufferData::currentFirstVertexBinding, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentIndexBuffer, QMetalCommandBuffer::d, QMetalGraphicsPipeline::d, d, executeBufferHostWritesForCurrentFrame(), QMetalShaderResourceBindingsData::FRAGMENT, interruptRenderPass(), QMetalBuffer::lastActiveFrameSlot, QMetalGraphicsPipeline::makeActiveForCurrentRenderPassEncoder(), rebindShaderResources(), and QMetalShaderResourceBindingsData::VERTEX.
| const char * QRhiMetal::icbUnavailableReason | ( | QMetalCommandBuffer * | cbD | ) | const |
Definition at line 2874 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 2460 of file qrhimetal.mm.
References QMetalCommandBuffer::d, and finalizeDeferredStoreActions().
Referenced by icbDraw(), and tempComputeEncoder().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 883 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1142 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 932 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 899 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 873 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 878 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3292 of file qrhimetal.mm.
References QMetalCommandBuffer::d, and QMetalCommandBufferData::lastGpuTime.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1123 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1106 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3276 of file qrhimetal.mm.
|
static |
Definition at line 2227 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1157 of file qrhimetal.mm.
References QMetalPipelineCacheDataHeader::driver, and f().
| bool QRhiMetal::prepareIcb | ( | quint32 | maxDrawCount | ) |
Definition at line 2953 of file qrhimetal.mm.
References d, QRhiMetalData::DeferredReleaseEntry::lastActiveFrameSlot, prepareIcbKernels(), QRhiMetalData::DeferredReleaseEntry::StagingIcbBuffer, and QRhiMetalData::DeferredReleaseEntry::type.
| bool QRhiMetal::prepareIcbKernels | ( | ) |
Definition at line 2894 of file qrhimetal.mm.
References d, and QRhiMetalData::icbSetupFailed.
Referenced by prepareIcb(), and qrhimtl_ensureIcbSlots().
|
static |
Definition at line 608 of file qrhimetal.mm.
|
overridevirtual |
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1062 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4059 of file qrhimetal.mm.
References enqueueResourceUpdates().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2330 of file qrhimetal.mm.
References QMetalCommandBuffer::hasBlendConstantsSet, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4295 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::currentComputePipeline, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentPipelineGeneration, QMetalComputePipeline::generation, QMetalComputePipeline::lastActiveFrameSlot, and QMetalCommandBuffer::recordingPass.
| void QRhiMetal::setDefaultScissor | ( | QMetalCommandBuffer * | cbD | ) |
Definition at line 2250 of file qrhimetal.mm.
References Bounded, and QMetalCommandBuffer::hasCustomScissorSet.
Referenced by endTempComputeEncoding(), setGraphicsPipeline(), and setViewport().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1837 of file qrhimetal.mm.
References QMetalCommandBuffer::currentComputePipeline, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentPipelineGeneration, QMetalGraphicsPipeline::d, QMetalGraphicsPipeline::generation, QMetalCommandBuffer::hasCustomScissorSet, QMetalGraphicsPipeline::lastActiveFrameSlot, QMetalGraphicsPipeline::makeActiveForCurrentRenderPassEncoder(), QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, and setDefaultScissor().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1210 of file qrhimetal.mm.
References d, and QMetalPipelineCacheDataHeader::driver.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2353 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::currentComputePipeline, QMetalCommandBuffer::currentGraphicsPipeline, QMetalComputePipeline::d, QMetalGraphicsPipeline::d, QMetalCommandBuffer::NoPass, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1129 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2305 of file qrhimetal.mm.
References Bounded, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::hasCustomScissorSet, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1870 of file qrhimetal.mm.
References QMetalComputePipelineData::bufferSizeBuffer, QMetalGraphicsPipelineData::bufferSizeBuffer, QMetalShaderResourceBindingsData::COMPUTE, QMetalCommandBuffer::currentComputePipeline, QMetalCommandBuffer::currentComputeSrb, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentGraphicsSrb, QMetalCommandBuffer::currentResSlot, QMetalCommandBuffer::currentSrbGeneration, QMetalBuffer::d, QMetalComputePipeline::d, QMetalGraphicsPipeline::d, executeBufferHostWritesForCurrentFrame(), QMetalShaderResourceBindingsData::FRAGMENT, QMetalBuffer::generation, QMetalSampler::generation, QMetalShaderResourceBindings::generation, QMetalTexture::generation, QMetalBuffer::lastActiveFrameSlot, QMetalSampler::lastActiveFrameSlot, QMetalTexture::lastActiveFrameSlot, 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 2401 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2342 of file qrhimetal.mm.
References QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2163 of file qrhimetal.mm.
References QMetalCommandBufferData::currentFirstVertexBinding, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentGraphicsSrb, QMetalCommandBuffer::currentIndexBuffer, QMetalCommandBuffer::d, executeBufferHostWritesForCurrentFrame(), QMetalBuffer::lastActiveFrameSlot, QMetalShaderResourceBindings::maxBinding, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2276 of file qrhimetal.mm.
References QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, setDefaultScissor(), and UnBounded.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1116 of file qrhimetal.mm.
| qsizetype QRhiMetal::subresUploadByteSize | ( | const QRhiTextureSubresourceUploadDescription & | subresDesc | ) | const |
Definition at line 3581 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 847 of file qrhimetal.mm.
Implements QRhiImplementation.
Definition at line 852 of file qrhimetal.mm.
| void QRhiMetal::tessellatedDraw | ( | const TessDrawArgs & | args | ) |
Definition at line 2571 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, QRhiMetal::TessDrawArgs::U16Indexed, QRhiMetal::TessDrawArgs::U32Indexed, and QMetalShaderResourceBindingsData::VERTEX.
Referenced by draw(), and drawIndexed().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 868 of file qrhimetal.mm.
Referenced by enqueueShaderResourceBindings().
|
static |
Definition at line 8409 of file qrhimetal.mm.
References QRhiSwapChainProxyData::reserved.
| struct QRhiMetal::[struct].caps QRhiMetal::caps |
| QMetalSwapChain* QRhiMetal::currentSwapChain = nullptr |
Definition at line 599 of file qrhimetal_p.h.
Referenced by beginFrame(), beginPass(), endFrame(), enqueueResourceUpdates(), and finish().
| QRhiMetalData* QRhiMetal::d = nullptr |
Definition at line 626 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().
| QRhiDriverInfo QRhiMetal::driverInfoStruct |
Definition at line 602 of file qrhimetal_p.h.
| bool QRhiMetal::importedCmdQueue = false |
Definition at line 598 of file qrhimetal_p.h.
Referenced by QRhiMetal(), create(), and destroy().
| bool QRhiMetal::importedDevice = false |
Definition at line 597 of file qrhimetal_p.h.
Referenced by QRhiMetal(), create(), and destroy().
| QRhiMetalNativeHandles QRhiMetal::nativeHandlesStruct |
Definition at line 601 of file qrhimetal_p.h.
| quint32 QRhiMetal::osMajor = 0 |
Definition at line 603 of file qrhimetal_p.h.
| quint32 QRhiMetal::osMinor = 0 |
Definition at line 604 of file qrhimetal_p.h.
| QRhi::Flags QRhiMetal::rhiFlags |
Definition at line 596 of file qrhimetal_p.h.
|
static |
Definition at line 556 of file qrhimetal_p.h.
Referenced by enqueueShaderResourceBindings(), and setShaderResources().
| QSet<QMetalSwapChain *> QRhiMetal::swapchains |
Definition at line 600 of file qrhimetal_p.h.