![]() |
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 QSize | outputSizeForTarget (QRhiRenderTarget *target) |
| 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 | |
| bool usePrivateStaticBuffers = 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 |
| 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 387 of file qrhimetal_p.h.
| QRhiMetal::QRhiMetal | ( | QRhiMetalInitParams * | params, |
| QRhiMetalNativeHandles * | importDevice = nullptr ) |
Definition at line 566 of file qrhimetal.mm.
References QRhiMetalData::QRhiMetalData(), d, importedCmdQueue, and importedDevice.
| QRhiMetal::~QRhiMetal | ( | ) |
Definition at line 586 of file qrhimetal.mm.
References d.
| void QRhiMetal::adjustForMultiViewDraw | ( | quint32 * | instanceCount, |
| QRhiCommandBuffer * | cb ) |
Definition at line 2735 of file qrhimetal.mm.
References QMetalCommandBuffer::currentGraphicsPipeline, QMetalBuffer::d, QMetalGraphicsPipeline::d, and QMetalGraphicsPipelineData::ExtraBufferManager::HostVisible.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4191 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, enqueueResourceUpdates(), QMetalCommandBuffer::NoPass, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::resetPerPassState().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3255 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3272 of file qrhimetal.mm.
References currentSwapChain, QMetalSwapChainRenderTarget::d, d, QMetalSwapChain::ds, executeDeferredReleases(), finishActiveReadbacks(), QMetalRenderTargetData::ColorAtt::needsDrawableForResolveTex, QMetalRenderTargetData::ColorAtt::needsDrawableForTex, QRhiMetalData::resetAndResizeBufferStagingArea(), QMetalSwapChain::rtWrapper, and QMetalSwapChain::samples.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3430 of file qrhimetal.mm.
References d, executeDeferredReleases(), finishActiveReadbacks(), and QRhiMetalData::resetAndResizeBufferStagingArea().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3991 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 4768 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 871 of file qrhimetal.mm.
|
overridevirtual |
Reimplemented from QRhiImplementation.
Definition at line 4509 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 642 of file qrhimetal.mm.
References d, and importedDevice.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 846 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1290 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1285 of file qrhimetal.mm.
|
overridevirtual |
Reimplemented from QRhiImplementation.
Definition at line 4503 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1253 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1267 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1295 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1274 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 841 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1260 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1279 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3189 of file qrhimetal.mm.
References QMetalCommandBuffer::d, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3210 of file qrhimetal.mm.
References QMetalCommandBuffer::d, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3231 of file qrhimetal.mm.
References QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 764 of file qrhimetal.mm.
References d, executeDeferredReleases(), finishActiveReadbacks(), and QRhiMetalData::icbSetupFailed.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4235 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::currentComputePipeline, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4245 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::currentComputePipeline, executeBufferHostWritesForCurrentFrame(), and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2768 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 2797 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 3153 of file qrhimetal.mm.
References QMetalCommandBuffer::currentIndexBuffer, executeBufferHostWritesForCurrentFrame(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4287 of file qrhimetal.mm.
References QMetalCommandBuffer::currentIndexBuffer, icbUnavailableReason(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3126 of file qrhimetal.mm.
References executeBufferHostWritesForCurrentFrame(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4268 of file qrhimetal.mm.
References icbUnavailableReason(), QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1092 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4206 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, enqueueResourceUpdates(), QMetalCommandBuffer::NoPass, and QMetalCommandBuffer::recordingPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3260 of file qrhimetal.mm.
References QMetalCommandBuffer::resetPerPassCachedState().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3329 of file qrhimetal.mm.
References QMetalSwapChain::currentFrameSlot, currentSwapChain, QMetalSwapChain::d, QMetalSwapChain::frameCount, and QMTL_FRAMES_IN_FLIGHT.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3455 of file qrhimetal.mm.
References d, and finishActiveReadbacks().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4176 of file qrhimetal.mm.
References enqueueResourceUpdates(), finalizeDeferredStoreActions(), QMetalCommandBuffer::NoPass, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
| void QRhiMetal::enqueueResourceUpdates | ( | QRhiCommandBuffer * | cb, |
| QRhiResourceUpdateBatch * | resourceUpdates ) |
Definition at line 3701 of file qrhimetal.mm.
References QRhiResourceUpdateBatchPrivate::activeBufferOpCount, QRhiResourceUpdateBatchPrivate::activeTextureOpCount, QRhiResourceUpdateBatchPrivate::BufferOp::Clear, QRhiBufferData::constData(), QRhiResourceUpdateBatchPrivate::BufferOp::Copy, QRhiResourceUpdateBatchPrivate::TextureOp::Copy, currentSwapChain, QMetalBuffer::d, QMetalSwapChain::d, QMetalSwapChainRenderTarget::d, QMetalTexture::d, d, QRhiResourceUpdateBatchPrivate::BufferOp::data, QRhiResourceUpdateBatchPrivate::TextureOp::dst, QRhiResourceUpdateBatchPrivate::BufferOp::DynamicUpdate, executeBufferHostWritesForCurrentFrame(), executeBufferHostWritesForSlot(), QRhiResourceUpdateBatchPrivate::free(), QRhiResourceUpdateBatchPrivate::TextureOp::GenMips, QRhiResourceUpdateBatchPrivate::get(), QMetalBufferData::isDeviceLocal, 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 1491 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 3565 of file qrhimetal.mm.
| void QRhiMetal::executeBufferHostWritesForCurrentFrame | ( | QMetalBuffer * | bufD | ) |
Definition at line 3979 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 3954 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 4875 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 4631 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 2414 of file qrhimetal.mm.
Referenced by endPass(), and interruptRenderPass().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3474 of file qrhimetal.mm.
References currentSwapChain, d, executeDeferredReleases(), finishActiveReadbacks(), and QMetalCommandBuffer::NoPass.
| void QRhiMetal::finishActiveReadbacks | ( | bool | forced = false | ) |
Definition at line 4926 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 3025 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 2848 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 2432 of file qrhimetal.mm.
References finalizeDeferredStoreActions().
Referenced by icbDraw(), and tempComputeEncoder().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 866 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1123 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 915 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 882 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 856 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 861 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3266 of file qrhimetal.mm.
References QMetalCommandBuffer::d, and QMetalCommandBufferData::lastGpuTime.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1104 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1087 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3250 of file qrhimetal.mm.
|
static |
Definition at line 2199 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1138 of file qrhimetal.mm.
References QMetalPipelineCacheDataHeader::driver, and f().
| bool QRhiMetal::prepareIcb | ( | quint32 | maxDrawCount | ) |
Definition at line 2927 of file qrhimetal.mm.
References d, prepareIcbKernels(), QRhiMetalData::DeferredReleaseEntry::StagingIcbBuffer, and QRhiMetalData::DeferredReleaseEntry::type.
| bool QRhiMetal::prepareIcbKernels | ( | ) |
Definition at line 2868 of file qrhimetal.mm.
References d, and QRhiMetalData::icbSetupFailed.
Referenced by prepareIcb(), and qrhimtl_ensureIcbSlots().
|
static |
Definition at line 597 of file qrhimetal.mm.
|
overridevirtual |
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1043 of file qrhimetal.mm.
References QMTL_FRAMES_IN_FLIGHT.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 3984 of file qrhimetal.mm.
References enqueueResourceUpdates().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2302 of file qrhimetal.mm.
References QMetalCommandBuffer::hasBlendConstantsSet, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 4218 of file qrhimetal.mm.
References QMetalCommandBuffer::ComputePass, QMetalCommandBuffer::currentComputePipeline, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentPipelineGeneration, QMetalComputePipeline::generation, and QMetalCommandBuffer::recordingPass.
| void QRhiMetal::setDefaultScissor | ( | QMetalCommandBuffer * | cbD | ) |
Definition at line 2222 of file qrhimetal.mm.
References Bounded, and QMetalCommandBuffer::hasCustomScissorSet.
Referenced by endTempComputeEncoding(), setGraphicsPipeline(), and setViewport().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1809 of file qrhimetal.mm.
References QMetalCommandBuffer::currentComputePipeline, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentPipelineGeneration, QMetalGraphicsPipeline::d, QMetalGraphicsPipeline::generation, QMetalCommandBuffer::hasCustomScissorSet, QMetalGraphicsPipeline::makeActiveForCurrentRenderPassEncoder(), QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, and setDefaultScissor().
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1191 of file qrhimetal.mm.
References d, and QMetalPipelineCacheDataHeader::driver.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2325 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 1110 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2277 of file qrhimetal.mm.
References Bounded, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::hasCustomScissorSet, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1842 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, 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 2373 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2314 of file qrhimetal.mm.
References QMetalCommandBuffer::hasStencilRefSet, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 2135 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 2248 of file qrhimetal.mm.
References QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, setDefaultScissor(), and UnBounded.
|
overridevirtual |
Implements QRhiImplementation.
Definition at line 1097 of file qrhimetal.mm.
| qsizetype QRhiMetal::subresUploadByteSize | ( | const QRhiTextureSubresourceUploadDescription & | subresDesc | ) | const |
Definition at line 3555 of file qrhimetal.mm.
|
overridevirtual |
Implements QRhiImplementation.
Implements QRhiImplementation.
Definition at line 835 of file qrhimetal.mm.
| void QRhiMetal::tessellatedDraw | ( | const TessDrawArgs & | args | ) |
Definition at line 2545 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 851 of file qrhimetal.mm.
Referenced by enqueueShaderResourceBindings().
|
static |
Definition at line 8296 of file qrhimetal.mm.
| bool QRhiMetal::baseVertexAndInstance = true |
Definition at line 606 of file qrhimetal_p.h.
| struct { ... } QRhiMetal::caps |
| QMetalSwapChain* QRhiMetal::currentSwapChain = nullptr |
Definition at line 597 of file qrhimetal_p.h.
Referenced by beginFrame(), beginPass(), endFrame(), enqueueResourceUpdates(), and finish().
| QRhiMetalData* QRhiMetal::d = nullptr |
Definition at line 623 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 620 of file qrhimetal_p.h.
| QRhiDriverInfo QRhiMetal::driverInfoStruct |
Definition at line 600 of file qrhimetal_p.h.
| bool QRhiMetal::importedCmdQueue = false |
Definition at line 596 of file qrhimetal_p.h.
Referenced by QRhiMetal().
| bool QRhiMetal::importedDevice = false |
Definition at line 595 of file qrhimetal_p.h.
Referenced by QRhiMetal(), and create().
| bool QRhiMetal::indirectCommandBuffers = false |
Definition at line 618 of file qrhimetal_p.h.
| bool QRhiMetal::isAppleGPU = false |
Definition at line 608 of file qrhimetal_p.h.
| int QRhiMetal::maxTextureSize = 4096 |
Definition at line 605 of file qrhimetal_p.h.
| int QRhiMetal::maxThreadGroupSize = 512 |
Definition at line 616 of file qrhimetal_p.h.
| bool QRhiMetal::multiView = false |
Definition at line 617 of file qrhimetal_p.h.
| QRhiMetalNativeHandles QRhiMetal::nativeHandlesStruct |
Definition at line 599 of file qrhimetal_p.h.
| quint32 QRhiMetal::osMajor = 0 |
Definition at line 601 of file qrhimetal_p.h.
| quint32 QRhiMetal::osMinor = 0 |
Definition at line 602 of file qrhimetal_p.h.
| QRhi::Flags QRhiMetal::rhiFlags |
Definition at line 594 of file qrhimetal_p.h.
| bool QRhiMetal::shadingRateMap = false |
Definition at line 619 of file qrhimetal_p.h.
|
static |
Definition at line 554 of file qrhimetal_p.h.
Referenced by enqueueShaderResourceBindings(), and setShaderResources().
| QVector< int > QRhiMetal::supportedSampleCounts |
Definition at line 607 of file qrhimetal_p.h.
| QSet<QMetalSwapChain *> QRhiMetal::swapchains |
Definition at line 598 of file qrhimetal_p.h.
| bool QRhiMetal::usePrivateStaticBuffers = false |
Definition at line 615 of file qrhimetal_p.h.