Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QRhiMetal Class Reference

#include <qrhimetal_p.h>

+ Inheritance diagram for QRhiMetal:
+ Collaboration diagram for QRhiMetal:

Classes

struct  TessDrawArgs
 

Public Member Functions

 QRhiMetal (QRhiMetalInitParams *params, QRhiMetalNativeHandles *importDevice=nullptr)
 
 ~QRhiMetal ()
 
bool create (QRhi::Flags flags) override
 
void destroy () override
 
QRhiGraphicsPipelinecreateGraphicsPipeline () override
 
QRhiComputePipelinecreateComputePipeline () override
 
QRhiShaderResourceBindingscreateShaderResourceBindings () override
 
QRhiBuffercreateBuffer (QRhiBuffer::Type type, QRhiBuffer::UsageFlags usage, quint32 size) override
 
QRhiRenderBuffercreateRenderBuffer (QRhiRenderBuffer::Type type, const QSize &pixelSize, int sampleCount, QRhiRenderBuffer::Flags flags, QRhiTexture::Format backingFormatHint) override
 
QRhiTexturecreateTexture (QRhiTexture::Format format, const QSize &pixelSize, int depth, int arraySize, int sampleCount, QRhiTexture::Flags flags) override
 
QRhiSamplercreateSampler (QRhiSampler::Filter magFilter, QRhiSampler::Filter minFilter, QRhiSampler::Filter mipmapMode, QRhiSampler::AddressMode u, QRhiSampler::AddressMode v, QRhiSampler::AddressMode w) override
 
QRhiTextureRenderTargetcreateTextureRenderTarget (const QRhiTextureRenderTargetDescription &desc, QRhiTextureRenderTarget::Flags flags) override
 
QRhiSwapChaincreateSwapChain () override
 
QRhi::FrameOpResult beginFrame (QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags) override
 
QRhi::FrameOpResult endFrame (QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags) override
 
QRhi::FrameOpResult beginOffscreenFrame (QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) override
 
QRhi::FrameOpResult endOffscreenFrame (QRhi::EndFrameFlags flags) override
 
QRhi::FrameOpResult finish () override
 
void resourceUpdate (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override
 
void beginPass (QRhiCommandBuffer *cb, QRhiRenderTarget *rt, const QColor &colorClearValue, const QRhiDepthStencilClearValue &depthStencilClearValue, QRhiResourceUpdateBatch *resourceUpdates, QRhiCommandBuffer::BeginPassFlags flags) override
 
void endPass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override
 
void setGraphicsPipeline (QRhiCommandBuffer *cb, QRhiGraphicsPipeline *ps) override
 
void setShaderResources (QRhiCommandBuffer *cb, QRhiShaderResourceBindings *srb, int dynamicOffsetCount, const QRhiCommandBuffer::DynamicOffset *dynamicOffsets) override
 
void setVertexInput (QRhiCommandBuffer *cb, int startBinding, int bindingCount, const QRhiCommandBuffer::VertexInput *bindings, QRhiBuffer *indexBuf, quint32 indexOffset, QRhiCommandBuffer::IndexFormat indexFormat) override
 
void setViewport (QRhiCommandBuffer *cb, const QRhiViewport &viewport) override
 
void setScissor (QRhiCommandBuffer *cb, const QRhiScissor &scissor) override
 
void setBlendConstants (QRhiCommandBuffer *cb, const QColor &c) override
 
void setStencilRef (QRhiCommandBuffer *cb, quint32 refValue) override
 
void draw (QRhiCommandBuffer *cb, quint32 vertexCount, quint32 instanceCount, quint32 firstVertex, quint32 firstInstance) override
 
void drawIndexed (QRhiCommandBuffer *cb, quint32 indexCount, quint32 instanceCount, quint32 firstIndex, qint32 vertexOffset, quint32 firstInstance) override
 
void debugMarkBegin (QRhiCommandBuffer *cb, const QByteArray &name) override
 
void debugMarkEnd (QRhiCommandBuffer *cb) override
 
void debugMarkMsg (QRhiCommandBuffer *cb, const QByteArray &msg) override
 
void beginComputePass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates, QRhiCommandBuffer::BeginPassFlags flags) override
 
void endComputePass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override
 
void setComputePipeline (QRhiCommandBuffer *cb, QRhiComputePipeline *ps) override
 
void dispatch (QRhiCommandBuffer *cb, int x, int y, int z) override
 
const QRhiNativeHandlesnativeHandles (QRhiCommandBuffer *cb) override
 
void beginExternal (QRhiCommandBuffer *cb) override
 
void endExternal (QRhiCommandBuffer *cb) override
 
double lastCompletedGpuTime (QRhiCommandBuffer *cb) override
 
QList< int > supportedSampleCounts () const override
 
int ubufAlignment () const override
 
bool isYUpInFramebuffer () const override
 
bool isYUpInNDC () const override
 
bool isClipDepthZeroToOne () const override
 
QMatrix4x4 clipSpaceCorrMatrix () const override
 
bool isTextureFormatSupported (QRhiTexture::Format format, QRhiTexture::Flags flags) const override
 
bool isFeatureSupported (QRhi::Feature feature) const override
 
int resourceLimit (QRhi::ResourceLimit limit) const override
 
const QRhiNativeHandlesnativeHandles () override
 
QRhiDriverInfo driverInfo () const override
 
QRhiStats statistics () override
 
bool makeThreadLocalNativeContextCurrent () override
 
void releaseCachedResources () override
 
bool isDeviceLost () const override
 
QByteArray pipelineCacheData () override
 
void setPipelineCacheData (const QByteArray &data) override
 
void executeDeferredReleases (bool forced=false)
 
void finishActiveReadbacks (bool forced=false)
 
qsizetype subresUploadByteSize (const QRhiTextureSubresourceUploadDescription &subresDesc) const
 
void enqueueSubresUpload (QMetalTexture *texD, void *mp, void *blitEncPtr, int layer, int level, const QRhiTextureSubresourceUploadDescription &subresDesc, qsizetype *curOfs)
 
void enqueueResourceUpdates (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates)
 
void executeBufferHostWritesForSlot (QMetalBuffer *bufD, int slot)
 
void executeBufferHostWritesForCurrentFrame (QMetalBuffer *bufD)
 
void enqueueShaderResourceBindings (QMetalShaderResourceBindings *srbD, QMetalCommandBuffer *cbD, int dynamicOffsetCount, const QRhiCommandBuffer::DynamicOffset *dynamicOffsets, bool offsetOnlyChange, const QShader::NativeResourceBindingMap *nativeResourceBindingMaps[SUPPORTED_STAGES])
 
int effectiveSampleCount (int sampleCount) const
 
void tessellatedDraw (const TessDrawArgs &args)
 
void adjustForMultiViewDraw (quint32 *instanceCount, QRhiCommandBuffer *cb)
 
- Public Member Functions inherited from QRhiImplementation
virtual ~QRhiImplementation ()
 
virtual bool create (QRhi::Flags flags)=0
 
virtual void destroy ()=0
 
virtual QRhiGraphicsPipelinecreateGraphicsPipeline ()=0
 
virtual QRhiComputePipelinecreateComputePipeline ()=0
 
virtual QRhiShaderResourceBindingscreateShaderResourceBindings ()=0
 
virtual QRhiBuffercreateBuffer (QRhiBuffer::Type type, QRhiBuffer::UsageFlags usage, quint32 size)=0
 
virtual QRhiRenderBuffercreateRenderBuffer (QRhiRenderBuffer::Type type, const QSize &pixelSize, int sampleCount, QRhiRenderBuffer::Flags flags, QRhiTexture::Format backingFormatHint)=0
 
virtual QRhiTexturecreateTexture (QRhiTexture::Format format, const QSize &pixelSize, int depth, int arraySize, int sampleCount, QRhiTexture::Flags flags)=0
 
virtual QRhiSamplercreateSampler (QRhiSampler::Filter magFilter, QRhiSampler::Filter minFilter, QRhiSampler::Filter mipmapMode, QRhiSampler::AddressMode u, QRhiSampler::AddressMode v, QRhiSampler::AddressMode w)=0
 
virtual QRhiTextureRenderTargetcreateTextureRenderTarget (const QRhiTextureRenderTargetDescription &desc, QRhiTextureRenderTarget::Flags flags)=0
 
virtual QRhiSwapChaincreateSwapChain ()=0
 
virtual QRhi::FrameOpResult beginFrame (QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags)=0
 
virtual QRhi::FrameOpResult endFrame (QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags)=0
 
virtual QRhi::FrameOpResult beginOffscreenFrame (QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags)=0
 
virtual QRhi::FrameOpResult endOffscreenFrame (QRhi::EndFrameFlags flags)=0
 
virtual QRhi::FrameOpResult finish ()=0
 
virtual void resourceUpdate (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates)=0
 
virtual void beginPass (QRhiCommandBuffer *cb, QRhiRenderTarget *rt, const QColor &colorClearValue, const QRhiDepthStencilClearValue &depthStencilClearValue, QRhiResourceUpdateBatch *resourceUpdates, QRhiCommandBuffer::BeginPassFlags flags)=0
 
virtual void endPass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates)=0
 
virtual void setGraphicsPipeline (QRhiCommandBuffer *cb, QRhiGraphicsPipeline *ps)=0
 
virtual void setShaderResources (QRhiCommandBuffer *cb, QRhiShaderResourceBindings *srb, int dynamicOffsetCount, const QRhiCommandBuffer::DynamicOffset *dynamicOffsets)=0
 
virtual void setVertexInput (QRhiCommandBuffer *cb, int startBinding, int bindingCount, const QRhiCommandBuffer::VertexInput *bindings, QRhiBuffer *indexBuf, quint32 indexOffset, QRhiCommandBuffer::IndexFormat indexFormat)=0
 
virtual void setViewport (QRhiCommandBuffer *cb, const QRhiViewport &viewport)=0
 
virtual void setScissor (QRhiCommandBuffer *cb, const QRhiScissor &scissor)=0
 
virtual void setBlendConstants (QRhiCommandBuffer *cb, const QColor &c)=0
 
virtual void setStencilRef (QRhiCommandBuffer *cb, quint32 refValue)=0
 
virtual void draw (QRhiCommandBuffer *cb, quint32 vertexCount, quint32 instanceCount, quint32 firstVertex, quint32 firstInstance)=0
 
virtual void drawIndexed (QRhiCommandBuffer *cb, quint32 indexCount, quint32 instanceCount, quint32 firstIndex, qint32 vertexOffset, quint32 firstInstance)=0
 
virtual void debugMarkBegin (QRhiCommandBuffer *cb, const QByteArray &name)=0
 
virtual void debugMarkEnd (QRhiCommandBuffer *cb)=0
 
virtual void debugMarkMsg (QRhiCommandBuffer *cb, const QByteArray &msg)=0
 
virtual void beginComputePass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates, QRhiCommandBuffer::BeginPassFlags flags)=0
 
virtual void endComputePass (QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates)=0
 
virtual void setComputePipeline (QRhiCommandBuffer *cb, QRhiComputePipeline *ps)=0
 
virtual void dispatch (QRhiCommandBuffer *cb, int x, int y, int z)=0
 
virtual const QRhiNativeHandlesnativeHandles (QRhiCommandBuffer *cb)=0
 
virtual void beginExternal (QRhiCommandBuffer *cb)=0
 
virtual void endExternal (QRhiCommandBuffer *cb)=0
 
virtual double lastCompletedGpuTime (QRhiCommandBuffer *cb)=0
 
virtual QList< int > supportedSampleCounts () const =0
 
virtual int ubufAlignment () const =0
 
virtual bool isYUpInFramebuffer () const =0
 
virtual bool isYUpInNDC () const =0
 
virtual bool isClipDepthZeroToOne () const =0
 
virtual QMatrix4x4 clipSpaceCorrMatrix () const =0
 
virtual bool isTextureFormatSupported (QRhiTexture::Format format, QRhiTexture::Flags flags) const =0
 
virtual bool isFeatureSupported (QRhi::Feature feature) const =0
 
virtual int resourceLimit (QRhi::ResourceLimit limit) const =0
 
virtual const QRhiNativeHandlesnativeHandles ()=0
 
virtual QRhiDriverInfo driverInfo () const =0
 
virtual QRhiStats statistics ()=0
 
virtual bool makeThreadLocalNativeContextCurrent ()=0
 
virtual void releaseCachedResources ()=0
 
virtual bool isDeviceLost () const =0
 
virtual QByteArray pipelineCacheData ()=0
 
virtual void setPipelineCacheData (const QByteArray &data)=0
 
void prepareForCreate (QRhi *rhi, QRhi::Implementation impl, QRhi::Flags flags)
 
bool isCompressedFormat (QRhiTexture::Format format) const
 
void compressedFormatInfo (QRhiTexture::Format format, const QSize &size, quint32 *bpl, quint32 *byteSize, QSize *blockDim) const
 
void textureFormatInfo (QRhiTexture::Format format, const QSize &size, quint32 *bpl, quint32 *byteSize, quint32 *bytesPerPixel) const
 
bool isStencilSupportingFormat (QRhiTexture::Format format) const
 
void registerResource (QRhiResource *res, bool ownsNativeResources=true)
 
void unregisterResource (QRhiResource *res)
 
void addDeleteLater (QRhiResource *res)
 
void addCleanupCallback (const QRhi::CleanupCallback &callback)
 
bool sanityCheckGraphicsPipeline (QRhiGraphicsPipeline *ps)
 
bool sanityCheckShaderResourceBindings (QRhiShaderResourceBindings *srb)
 
void updateLayoutDesc (QRhiShaderResourceBindings *srb)
 
quint32 pipelineCacheRhiId () const
 
void pipelineCreationStart ()
 
void pipelineCreationEnd ()
 
qint64 totalPipelineCreationTime () const
 
QRhiVertexInputAttribute::Format shaderDescVariableFormatToVertexInputFormat (QShaderDescription::VariableType type) const
 
quint32 byteSizePerVertexForVertexInputFormat (QRhiVertexInputAttribute::Format format) const
 

Static Public Member Functions

static bool probe (QRhiMetalInitParams *params)
 
static QRhiSwapChainProxyData updateSwapChainProxyData (QWindow *window)
 
- Static Public Member Functions inherited from QRhiImplementation
static const QRhiShaderResourceBinding::DatashaderResourceBindingData (const QRhiShaderResourceBinding &binding)
 
static QRhiShaderResourceBinding::DatashaderResourceBindingData (QRhiShaderResourceBinding &binding)
 
static bool sortedBindingLessThan (const QRhiShaderResourceBinding &a, const QRhiShaderResourceBinding &b)
 

Public Attributes

QRhi::Flags rhiFlags
 
bool importedDevice = false
 
bool importedCmdQueue = false
 
QMetalSwapChaincurrentSwapChain = 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 
 
caps 
 
QRhiMetalDatad = nullptr
 
- Public Attributes inherited from QRhiImplementation
QRhiq
 
bool debugMarkers = false
 
int currentFrameSlot = 0
 
bool inFrame = false
 

Static Public Attributes

static const int SUPPORTED_STAGES = 5
 
- Static Public Attributes inherited from QRhiImplementation
static const int MAX_SHADER_CACHE_ENTRIES = 128
 

Detailed Description

Definition at line 325 of file qrhimetal_p.h.

Constructor & Destructor Documentation

◆ QRhiMetal()

QRhiMetal::QRhiMetal ( QRhiMetalInitParams params,
QRhiMetalNativeHandles importDevice = nullptr 
)

◆ ~QRhiMetal()

QRhiMetal::~QRhiMetal ( )

Definition at line 477 of file qrhimetal.mm.

References d.

Member Function Documentation

◆ adjustForMultiViewDraw()

void QRhiMetal::adjustForMultiViewDraw ( quint32 instanceCount,
QRhiCommandBuffer cb 
)

◆ beginComputePass()

void QRhiMetal::beginComputePass ( QRhiCommandBuffer cb,
QRhiResourceUpdateBatch resourceUpdates,
QRhiCommandBuffer::BeginPassFlags  flags 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 3014 of file qrhimetal.mm.

References QMetalCommandBufferData::cb, cb, QMetalCommandBuffer::ComputePass, QMetalCommandBufferData::currentComputePassEncoder, QMetalCommandBuffer::d, enqueueResourceUpdates(), QMetalCommandBuffer::NoPass, Q_ASSERT, QRHI_RES, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::resetPerPassState().

+ Here is the call graph for this function:

◆ beginExternal()

void QRhiMetal::beginExternal ( QRhiCommandBuffer cb)
overridevirtual

Implements QRhiImplementation.

Definition at line 2302 of file qrhimetal.mm.

References cb, and Q_UNUSED.

◆ beginFrame()

◆ beginOffscreenFrame()

QRhi::FrameOpResult QRhiMetal::beginOffscreenFrame ( QRhiCommandBuffer **  cb,
QRhi::BeginFrameFlags  flags 
)
overridevirtual

◆ beginPass()

void QRhiMetal::beginPass ( QRhiCommandBuffer cb,
QRhiRenderTarget rt,
const QColor colorClearValue,
const QRhiDepthStencilClearValue depthStencilClearValue,
QRhiResourceUpdateBatch resourceUpdates,
QRhiCommandBuffer::BeginPassFlags  flags 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 2890 of file qrhimetal.mm.

References QMetalRenderTargetData::ColorAtt::arrayLayer, QMetalCommandBufferData::cb, cb, QRhiTextureRenderTargetDescription::cbeginColorAttachments(), QRhiTextureRenderTargetDescription::cendColorAttachments(), QMetalRenderTargetData::colorAtt, QMetalRenderTargetData::colorAttCount, QMetalTextureRenderTarget::create(), QRhiMetalData::createDefaultRenderPass(), QMetalSwapChainData::curDrawable, QRhiImplementation::currentFrameSlot, QMetalCommandBufferData::currentPassRpDesc, QMetalCommandBufferData::currentRenderPassEncoder, QMetalRenderTargetData::currentResIdList, currentSwapChain, QMetalCommandBuffer::currentTarget, QMetalTextureRenderTarget::d, QMetalCommandBuffer::d, QMetalSwapChain::d, d, QMetalRenderTargetData::depthNeedsStore, QRhiTextureRenderTargetDescription::depthStencilBuffer(), QRhiTextureRenderTargetDescription::depthTexture(), QRhiTextureRenderTarget::description(), QMetalRenderTargetData::dsAttCount, QMetalRenderTargetData::dsTex, enqueueResourceUpdates(), QMetalRenderTargetData::fb, QMetalRenderTargetData::hasStencil, i, it, QMetalSwapChainData::layer, QMetalRenderTargetData::ColorAtt::level, QRhiTextureRenderTarget::m_desc, QRhiTextureRenderTarget::m_flags, QMetalCommandBuffer::NoPass, pool, QRhiTextureRenderTarget::PreserveColorContents, QRhiTextureRenderTarget::PreserveDepthStencilContents, Q_ASSERT, QRHI_RES, qWarning, QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, QMetalCommandBuffer::resetPerPassState(), QMetalRenderTargetData::ColorAtt::resolveLayer, QMetalRenderTargetData::ColorAtt::resolveLevel, QMetalRenderTargetData::ColorAtt::resolveTex, QRhiResource::resourceType(), QMetalRenderTargetData::ColorAtt::slice, QRhiResource::SwapChainRenderTarget, QMetalRenderTargetData::ColorAtt::tex, and QRhiResource::TextureRenderTarget.

+ Here is the call graph for this function:

◆ clipSpaceCorrMatrix()

QMatrix4x4 QRhiMetal::clipSpaceCorrMatrix ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 706 of file qrhimetal.mm.

◆ create()

◆ createBuffer()

QRhiBuffer * QRhiMetal::createBuffer ( QRhiBuffer::Type  type,
QRhiBuffer::UsageFlags  usage,
quint32  size 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 681 of file qrhimetal.mm.

◆ createComputePipeline()

QRhiComputePipeline * QRhiMetal::createComputePipeline ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1083 of file qrhimetal.mm.

◆ createGraphicsPipeline()

QRhiGraphicsPipeline * QRhiMetal::createGraphicsPipeline ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1078 of file qrhimetal.mm.

◆ createRenderBuffer()

QRhiRenderBuffer * QRhiMetal::createRenderBuffer ( QRhiRenderBuffer::Type  type,
const QSize pixelSize,
int  sampleCount,
QRhiRenderBuffer::Flags  flags,
QRhiTexture::Format  backingFormatHint 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1051 of file qrhimetal.mm.

◆ createSampler()

QRhiSampler * QRhiMetal::createSampler ( QRhiSampler::Filter  magFilter,
QRhiSampler::Filter  minFilter,
QRhiSampler::Filter  mipmapMode,
QRhiSampler::AddressMode  u,
QRhiSampler::AddressMode  v,
QRhiSampler::AddressMode  w 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1065 of file qrhimetal.mm.

◆ createShaderResourceBindings()

QRhiShaderResourceBindings * QRhiMetal::createShaderResourceBindings ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 1088 of file qrhimetal.mm.

◆ createSwapChain()

QRhiSwapChain * QRhiMetal::createSwapChain ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 676 of file qrhimetal.mm.

◆ createTexture()

QRhiTexture * QRhiMetal::createTexture ( QRhiTexture::Format  format,
const QSize pixelSize,
int  depth,
int  arraySize,
int  sampleCount,
QRhiTexture::Flags  flags 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1058 of file qrhimetal.mm.

◆ createTextureRenderTarget()

QRhiTextureRenderTarget * QRhiMetal::createTextureRenderTarget ( const QRhiTextureRenderTargetDescription desc,
QRhiTextureRenderTarget::Flags  flags 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1072 of file qrhimetal.mm.

References desc.

◆ debugMarkBegin()

◆ debugMarkEnd()

◆ debugMarkMsg()

void QRhiMetal::debugMarkMsg ( QRhiCommandBuffer cb,
const QByteArray msg 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 2287 of file qrhimetal.mm.

References cb, QByteArray::constData(), QMetalCommandBufferData::currentRenderPassEncoder, QMetalCommandBuffer::d, QRhiImplementation::debugMarkers, QMetalCommandBuffer::NoPass, QRHI_RES, and QMetalCommandBuffer::recordingPass.

+ Here is the call graph for this function:

◆ destroy()

void QRhiMetal::destroy ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 634 of file qrhimetal.mm.

References QRhiMetalData::captureScope, QHash< Key, T >::clear(), QRhiMetalData::cmdQueue, d, QRhiMetalData::dev, executeDeferredReleases(), finishActiveReadbacks(), importedCmdQueue, importedDevice, iOS, release(), and QRhiMetalData::shaderCache.

+ Here is the call graph for this function:

◆ dispatch()

◆ draw()

void QRhiMetal::draw ( QRhiCommandBuffer cb,
quint32  vertexCount,
quint32  instanceCount,
quint32  firstVertex,
quint32  firstInstance 
)
overridevirtual

◆ drawIndexed()

◆ driverInfo()

QRhiDriverInfo QRhiMetal::driverInfo ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 891 of file qrhimetal.mm.

References driverInfoStruct.

◆ effectiveSampleCount()

int QRhiMetal::effectiveSampleCount ( int  sampleCount) const

Definition at line 665 of file qrhimetal.mm.

References contains(), qBound(), qWarning, and supportedSampleCounts.

+ Here is the call graph for this function:

◆ endComputePass()

void QRhiMetal::endComputePass ( QRhiCommandBuffer cb,
QRhiResourceUpdateBatch resourceUpdates 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 3029 of file qrhimetal.mm.

References cb, QMetalCommandBuffer::ComputePass, QMetalCommandBufferData::currentComputePassEncoder, QMetalCommandBuffer::d, enqueueResourceUpdates(), QMetalCommandBuffer::NoPass, Q_ASSERT, QRHI_RES, and QMetalCommandBuffer::recordingPass.

+ Here is the call graph for this function:

◆ endExternal()

void QRhiMetal::endExternal ( QRhiCommandBuffer cb)
overridevirtual

Implements QRhiImplementation.

Definition at line 2307 of file qrhimetal.mm.

References cb, QRHI_RES, and QMetalCommandBuffer::resetPerPassCachedState().

+ Here is the call graph for this function:

◆ endFrame()

◆ endOffscreenFrame()

QRhi::FrameOpResult QRhiMetal::endOffscreenFrame ( QRhi::EndFrameFlags  flags)
overridevirtual

Implements QRhiImplementation.

Definition at line 2441 of file qrhimetal.mm.

References QRhiMetalData::OffscreenFrame::active, QMetalCommandBufferData::cb, cb, QRhiMetalData::OffscreenFrame::cbWrapper, QMetalCommandBuffer::d, d, finishActiveReadbacks(), QRhi::FrameOpSuccess, QRhiMetalData::OffscreenFrame::lastGpuTime, QRhiMetalData::ofr, Q_ASSERT, and Q_UNUSED.

+ Here is the call graph for this function:

◆ endPass()

void QRhiMetal::endPass ( QRhiCommandBuffer cb,
QRhiResourceUpdateBatch resourceUpdates 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 3000 of file qrhimetal.mm.

References cb, QMetalCommandBufferData::currentRenderPassEncoder, QMetalCommandBuffer::currentTarget, QMetalCommandBuffer::d, enqueueResourceUpdates(), QMetalCommandBuffer::NoPass, Q_ASSERT, QRHI_RES, QMetalCommandBuffer::recordingPass, and QMetalCommandBuffer::RenderPass.

+ Here is the call graph for this function:

◆ enqueueResourceUpdates()

void QRhiMetal::enqueueResourceUpdates ( QRhiCommandBuffer cb,
QRhiResourceUpdateBatch resourceUpdates 
)

Definition at line 2673 of file qrhimetal.mm.

References QRhiResourceUpdateBatchPrivate::activeBufferOpCount, QRhiMetalData::activeBufferReadbacks, QRhiMetalData::BufferReadback::activeFrameSlot, QRhiResourceUpdateBatchPrivate::BufferOp::buf, QRhiMetalData::BufferReadback::buf, QMetalBufferData::buf, QRhiResourceUpdateBatchPrivate::bufferOps, cb, contents, QRhiImplementation::currentFrameSlot, QMetalBuffer::d, d, QRhiResourceUpdateBatchPrivate::BufferOp::data, QRhiBuffer::Dynamic, QRhiResourceUpdateBatchPrivate::BufferOp::DynamicUpdate, executeBufferHostWritesForCurrentFrame(), QRhiResourceUpdateBatchPrivate::get(), i, QRhiBuffer::m_size, QRhiBuffer::m_type, QRhiResourceUpdateBatchPrivate::BufferOp::offset, QRhiMetalData::BufferReadback::offset, QMetalBufferData::pendingUpdates, Q_ASSERT, QMTL_FRAMES_IN_FLIGHT, QRHI_RES, QRhiResourceUpdateBatchPrivate::BufferOp::Read, QRhiMetalData::BufferReadback::readSize, QRhiMetalData::BufferReadback::result, QRhiBufferData::size(), QMetalBufferData::slotted, QRhiResourceUpdateBatchPrivate::BufferOp::StaticUpload, and QRhiResourceUpdateBatchPrivate::BufferOp::type.

Referenced by beginComputePass(), beginPass(), endComputePass(), endPass(), and resourceUpdate().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ enqueueShaderResourceBindings()

void QRhiMetal::enqueueShaderResourceBindings ( QMetalShaderResourceBindings srbD,
QMetalCommandBuffer cbD,
int  dynamicOffsetCount,
const QRhiCommandBuffer::DynamicOffset dynamicOffsets,
bool  offsetOnlyChange,
const QShader::NativeResourceBindingMap nativeResourceBindingMaps[SUPPORTED_STAGES] 
)

Definition at line 1248 of file qrhimetal.mm.

References QRhiBatchedBindings< T >::batches, bindStageBuffers(), bindStageSamplers(), bindStageTextures(), QMetalBufferData::buf, Buffer, QMetalShaderResourceBindingsData::Stage::bufferBatches, QRhiShaderResourceBinding::BufferLoad, QRhiShaderResourceBinding::BufferLoadStore, QMetalShaderResourceBindingsData::Stage::bufferOffsetBatches, QMetalShaderResourceBindingsData::Stage::buffers, QRhiShaderResourceBinding::BufferStore, QMetalShaderResourceBindingsData::COMPUTE, QMetalCommandBuffer::ComputePass, QRhiImplementation::currentFrameSlot, QMetalCommandBufferData::currentShaderResourceBindingState, QMetalBuffer::d, QMetalTexture::d, QMetalSampler::d, QMetalCommandBuffer::d, QRhiBatchedBindings< T >::feed(), QRhiBatchedBindings< T >::finish(), QMetalShaderResourceBindingsData::FRAGMENT, i, QRhiShaderResourceBinding::ImageLoad, QRhiShaderResourceBinding::ImageLoadStore, QRhiShaderResourceBinding::ImageStore, mapBinding(), QRHI_RES, QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, QMetalShaderResourceBindingsData::res, QRhiShaderResourceBinding::SampledTexture, QRhiShaderResourceBinding::Sampler, Sampler, QMetalShaderResourceBindingsData::Stage::samplerBatches, QMetalShaderResourceBindingsData::Stage::samplers, QMetalSamplerData::samplerState, QRhiImplementation::shaderResourceBindingData(), QMetalBufferData::slotted, QMetalShaderResourceBindings::sortedBindings, SUPPORTED_STAGES, QMetalShaderResourceBindingsData::TESSCTRL, QMetalShaderResourceBindingsData::TESSEVAL, QMetalTextureData::tex, QRhiShaderResourceBinding::Texture, Texture, QMetalShaderResourceBindingsData::Stage::textureBatches, QMetalShaderResourceBindingsData::Stage::textures, toRhiSrbStage(), QRhiShaderResourceBinding::UniformBuffer, QMetalShaderResourceBindingsData::VERTEX, and QMetalTextureData::viewForLevel().

Referenced by setShaderResources().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ enqueueSubresUpload()

◆ executeBufferHostWritesForCurrentFrame()

void QRhiMetal::executeBufferHostWritesForCurrentFrame ( QMetalBuffer bufD)

Definition at line 2878 of file qrhimetal.mm.

References QRhiImplementation::currentFrameSlot, QMetalBuffer::d, executeBufferHostWritesForSlot(), and QMetalBufferData::slotted.

Referenced by enqueueResourceUpdates(), setShaderResources(), and setVertexInput().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ executeBufferHostWritesForSlot()

void QRhiMetal::executeBufferHostWritesForSlot ( QMetalBuffer bufD,
int  slot 
)

Definition at line 2855 of file qrhimetal.mm.

References QMetalBufferData::buf, contents, QMetalBuffer::d, d, and QMetalBufferData::pendingUpdates.

Referenced by executeBufferHostWritesForCurrentFrame().

+ Here is the caller graph for this function:

◆ executeDeferredReleases()

void QRhiMetal::executeDeferredReleases ( bool  forced = false)

Definition at line 3093 of file qrhimetal.mm.

References QRhiMetalData::DeferredReleaseEntry::Buffer, QRhiMetalData::DeferredReleaseEntry::ComputePipeline, QRhiImplementation::currentFrameSlot, d, e, QRhiMetalData::DeferredReleaseEntry::GraphicsPipeline, i, qrhimtl_releaseBuffer(), qrhimtl_releaseRenderBuffer(), qrhimtl_releaseSampler(), qrhimtl_releaseTexture(), release(), QRhiMetalData::releaseQueue, QRhiMetalData::DeferredReleaseEntry::RenderBuffer, QRhiMetalData::DeferredReleaseEntry::Sampler, QRhiMetalData::DeferredReleaseEntry::StagingBuffer, and QRhiMetalData::DeferredReleaseEntry::Texture.

Referenced by beginFrame(), beginOffscreenFrame(), destroy(), and finish().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ finish()

◆ finishActiveReadbacks()

◆ isClipDepthZeroToOne()

bool QRhiMetal::isClipDepthZeroToOne ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 701 of file qrhimetal.mm.

◆ isDeviceLost()

bool QRhiMetal::isDeviceLost ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 917 of file qrhimetal.mm.

◆ isFeatureSupported()

◆ isTextureFormatSupported()

bool QRhiMetal::isTextureFormatSupported ( QRhiTexture::Format  format,
QRhiTexture::Flags  flags 
) const
overridevirtual

◆ isYUpInFramebuffer()

bool QRhiMetal::isYUpInFramebuffer ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 691 of file qrhimetal.mm.

◆ isYUpInNDC()

bool QRhiMetal::isYUpInNDC ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 696 of file qrhimetal.mm.

◆ lastCompletedGpuTime()

double QRhiMetal::lastCompletedGpuTime ( QRhiCommandBuffer cb)
overridevirtual

◆ makeThreadLocalNativeContextCurrent()

bool QRhiMetal::makeThreadLocalNativeContextCurrent ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 903 of file qrhimetal.mm.

◆ nativeHandles() [1/2]

const QRhiNativeHandles * QRhiMetal::nativeHandles ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 886 of file qrhimetal.mm.

References nativeHandlesStruct.

◆ nativeHandles() [2/2]

const QRhiNativeHandles * QRhiMetal::nativeHandles ( QRhiCommandBuffer cb)
overridevirtual

Implements QRhiImplementation.

Definition at line 2297 of file qrhimetal.mm.

References cb, and QRHI_RES.

◆ pipelineCacheData()

QByteArray QRhiMetal::pipelineCacheData ( )
overridevirtual

◆ probe()

bool QRhiMetal::probe ( QRhiMetalInitParams params)
static

Definition at line 488 of file qrhimetal.mm.

References Q_UNUSED, and release().

Referenced by QRhi::probe().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ releaseCachedResources()

void QRhiMetal::releaseCachedResources ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 909 of file qrhimetal.mm.

References QHash< Key, T >::clear(), d, and QRhiMetalData::shaderCache.

+ Here is the call graph for this function:

◆ resourceLimit()

◆ resourceUpdate()

void QRhiMetal::resourceUpdate ( QRhiCommandBuffer cb,
QRhiResourceUpdateBatch resourceUpdates 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 2883 of file qrhimetal.mm.

References cb, enqueueResourceUpdates(), QMetalCommandBuffer::NoPass, Q_ASSERT, and QRHI_RES.

+ Here is the call graph for this function:

◆ setBlendConstants()

void QRhiMetal::setBlendConstants ( QRhiCommandBuffer cb,
const QColor c 
)
overridevirtual

◆ setComputePipeline()

◆ setGraphicsPipeline()

◆ setPipelineCacheData()

void QRhiMetal::setPipelineCacheData ( const QByteArray data)
overridevirtual

◆ setScissor()

void QRhiMetal::setScissor ( QRhiCommandBuffer cb,
const QRhiScissor scissor 
)
overridevirtual

◆ setShaderResources()

void QRhiMetal::setShaderResources ( QRhiCommandBuffer cb,
QRhiShaderResourceBindings srb,
int  dynamicOffsetCount,
const QRhiCommandBuffer::DynamicOffset dynamicOffsets 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1492 of file qrhimetal.mm.

References QVarLengthArray< T, Prealloc >::append(), QVarLengthArray< T, Prealloc >::at(), QMetalShaderResourceBindings::boundResourceData, QRhiShaderResourceBinding::BufferLoad, QRhiShaderResourceBinding::bufferLoad(), QRhiShaderResourceBinding::BufferLoadStore, QMetalGraphicsPipelineData::bufferSizeBuffer, QMetalComputePipelineData::bufferSizeBuffer, QRhiShaderResourceBinding::BufferStore, cb, QMetalGraphicsPipelineData::Tessellation::compTesc, QMetalShaderResourceBindingsData::COMPUTE, QRhiShaderResourceBinding::ComputeStage, QMetalGraphicsPipelineData::Tessellation::compVs, QVarLengthArray< T, Prealloc >::constData(), QMap< Key, T >::contains(), QVarLengthArray< T, Prealloc >::count(), QMetalShaderResourceBindings::BoundSampledTextureData::count, QMetalComputePipelineData::cs, QMetalCommandBuffer::currentComputePipeline, QMetalCommandBuffer::currentComputeSrb, QRhiImplementation::currentFrameSlot, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBuffer::currentGraphicsSrb, QMetalCommandBuffer::currentResSlot, QMetalCommandBuffer::currentSrbGeneration, QMetalBuffer::d, QMetalShaderResourceBindings::BoundSampledTextureData::d, QMetalGraphicsPipeline::d, QMetalComputePipeline::d, QMetalShader::desc, QMetalGraphicsPipelineData::Tessellation::enabled, enqueueShaderResourceBindings(), executeBufferHostWritesForCurrentFrame(), QShader::NativeShaderInfo::extraBufferBindings, QMetalShaderResourceBindingsData::FRAGMENT, QRhiShaderResourceBinding::FragmentStage, QMetalGraphicsPipelineData::fs, QMetalBuffer::generation, QMetalTexture::generation, QMetalSampler::generation, QMetalShaderResourceBindings::BoundUniformBufferData::generation, QMetalShaderResourceBindings::BoundStorageImageData::generation, QMetalShaderResourceBindings::BoundStorageBufferData::generation, QMetalShaderResourceBindings::generation, i, QMetalShaderResourceBindings::BoundUniformBufferData::id, QMetalShaderResourceBindings::BoundStorageImageData::id, QMetalShaderResourceBindings::BoundStorageBufferData::id, QRhiShaderResourceBinding::ImageLoad, QRhiShaderResourceBinding::ImageLoadStore, QRhiShaderResourceBinding::ImageStore, QMetalBuffer::lastActiveFrameSlot, QMetalTexture::lastActiveFrameSlot, QMetalSampler::lastActiveFrameSlot, QRhiResource::m_id, QRhiGraphicsPipeline::m_shaderResourceBindings, QRhiComputePipeline::m_shaderResourceBindings, QRhiBuffer::m_usage, QShaderPrivate::MslBufferSizeBufferBinding, QMetalShader::nativeResourceBindingMap, QMetalShader::nativeShaderInfo, QMetalCommandBuffer::NoPass, QMetalBufferData::pendingUpdates, Q_ASSERT, qMakePair(), qMax(), QRHI_RES, QMetalCommandBuffer::recordingPass, QVarLengthArray< T, Prealloc >::resize(), QRhiShaderResourceBinding::SampledTexture, QRhiShaderResourceBinding::Sampler, QMetalShaderResourceBindings::BoundSampledTextureData::samplerGeneration, QMetalShaderResourceBindings::BoundSampledTextureData::samplerId, QMetalShaderResourceBindings::BoundResourceData::sbuf, QRhiImplementation::shaderResourceBindingData(), QMetalShaderResourceBindings::BoundResourceData::simage, QRhiBuffer::size(), QVLABaseBase::size(), QMetalBufferData::slotted, QMetalShaderResourceBindings::sortedBindings, QMetalShaderResourceBindings::BoundResourceData::stex, QShaderDescription::storageBlocks(), QRhiBuffer::StorageBuffer, SUPPORTED_STAGES, QMetalGraphicsPipelineData::tess, QMetalShaderResourceBindingsData::TESSCTRL, QRhiShaderResourceBinding::TessellationControlStage, QRhiShaderResourceBinding::TessellationEvaluationStage, QMetalShaderResourceBindingsData::TESSEVAL, QMetalShaderResourceBindings::BoundSampledTextureData::texGeneration, QMetalShaderResourceBindings::BoundSampledTextureData::texId, QRhiShaderResourceBinding::Texture, QMetalShaderResourceBindings::BoundResourceData::ubuf, QRhiShaderResourceBinding::UniformBuffer, QRhiBuffer::UniformBuffer, QMetalShaderResourceBindingsData::VERTEX, QRhiShaderResourceBinding::VertexStage, QMetalGraphicsPipelineData::Tessellation::vertTese, and QMetalGraphicsPipelineData::vs.

+ Here is the call graph for this function:

◆ setStencilRef()

◆ setVertexInput()

◆ setViewport()

void QRhiMetal::setViewport ( QRhiCommandBuffer cb,
const QRhiViewport viewport 
)
overridevirtual

Implements QRhiImplementation.

Definition at line 1824 of file qrhimetal.mm.

References cb, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBufferData::currentRenderPassEncoder, QMetalCommandBuffer::currentTarget, QMetalCommandBuffer::d, QRhiGraphicsPipeline::m_flags, QRhiRenderTarget::pixelSize(), Q_ASSERT, QRHI_RES, QMetalCommandBuffer::recordingPass, QMetalCommandBuffer::RenderPass, setViewport(), QRhiGraphicsPipeline::UsesScissor, and viewport().

Referenced by setViewport().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ statistics()

QRhiStats QRhiMetal::statistics ( )
overridevirtual

Implements QRhiImplementation.

Definition at line 896 of file qrhimetal.mm.

References QRhiImplementation::totalPipelineCreationTime().

+ Here is the call graph for this function:

◆ subresUploadByteSize()

qsizetype QRhiMetal::subresUploadByteSize ( const QRhiTextureSubresourceUploadDescription subresDesc) const

Definition at line 2537 of file qrhimetal.mm.

References QRhiTextureSubresourceUploadDescription::data(), QRhiTextureSubresourceUploadDescription::image(), QImage::isNull(), QByteArray::size(), QImage::sizeInBytes(), and QRhiMetalData::TEXBUF_ALIGN.

+ Here is the call graph for this function:

◆ supportedSampleCounts()

QList< int > QRhiMetal::supportedSampleCounts ( ) const
overridevirtual

Implements QRhiImplementation.

◆ tessellatedDraw()

void QRhiMetal::tessellatedDraw ( const TessDrawArgs args)

Definition at line 1963 of file qrhimetal.mm.

References QMetalGraphicsPipelineData::ExtraBufferManager::acquireWorkBuffer(), args, QRhiBatchedBindings< T >::batches, QMetalBufferData::buf, caps, QMetalGraphicsPipelineData::Tessellation::compTesc, QMetalShaderResourceBindingsData::COMPUTE, QMetalGraphicsPipelineData::Tessellation::compVs, contents, QMetalCommandBufferData::currentComputePassEncoder, QMetalCommandBufferData::currentFirstVertexBinding, QMetalCommandBuffer::currentGraphicsPipeline, QMetalCommandBufferData::currentRenderPassEncoder, QMetalCommandBufferData::currentShaderResourceBindingState, QMetalCommandBufferData::currentVertexInputOffsets, QMetalCommandBufferData::currentVertexInputsBuffers, QMetalBuffer::d, QMetalGraphicsPipeline::d, QMetalCommandBuffer::d, endTessellationComputeEncoding(), QShader::NativeShaderInfo::extraBufferBindings, QMetalGraphicsPipelineData::extraBufMgr, QMetalGraphicsPipelineData::Tessellation::failed, QMetalShaderResourceBindingsData::FRAGMENT, QMetalGraphicsPipelineData::ExtraBufferManager::HostVisible, i, QMetalGraphicsPipelineData::Tessellation::inControlPointCount, instanceCount, QMetalGraphicsPipeline::makeActiveForCurrentRenderPassEncoder(), QShaderPrivate::MslTessTescInputBufferBinding, QShaderPrivate::MslTessTescParamsBufferBinding, QShaderPrivate::MslTessTescPatchOutputBufferBinding, QShaderPrivate::MslTessTescTessLevelBufferBinding, QShaderPrivate::MslTessVertIndicesBufferBinding, QShaderPrivate::MslTessVertTescOutputBufferBinding, QMetalShader::nativeShaderInfo, QRhiMetal::TessDrawArgs::NonIndexed, QShader::NonIndexedVertexAsComputeShader, QMetalGraphicsPipelineData::Tessellation::outControlPointCount, QMetalGraphicsPipelineData::Tessellation::patchCountForDrawCall(), rebindShaderResources(), QMetalGraphicsPipelineData::Tessellation::tescCompOutputBufferSize(), QMetalGraphicsPipelineData::Tessellation::tescCompPatchOutputBufferSize(), QMetalGraphicsPipelineData::Tessellation::tescCompPipeline(), QMetalGraphicsPipelineData::tess, QMetalShaderResourceBindingsData::TESSCTRL, tessellationComputeEncoder(), QMetalShaderResourceBindingsData::TESSEVAL, QRhiMetal::TessDrawArgs::U16Indexed, QRhiMetal::TessDrawArgs::U32Indexed, QShader::UInt16IndexedVertexAsComputeShader, QShader::UInt32IndexedVertexAsComputeShader, QMap< Key, T >::value(), QMetalShaderResourceBindingsData::VERTEX, QMetalGraphicsPipelineData::Tessellation::vsCompOutputBufferSize(), QMetalGraphicsPipelineData::Tessellation::vsCompPipeline(), and QMetalGraphicsPipelineData::Tessellation::vsCompVariantToIndex().

Referenced by draw(), and drawIndexed().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ubufAlignment()

int QRhiMetal::ubufAlignment ( ) const
overridevirtual

Implements QRhiImplementation.

Definition at line 686 of file qrhimetal.mm.

◆ updateSwapChainProxyData()

QRhiSwapChainProxyData QRhiMetal::updateSwapChainProxyData ( QWindow window)
static

Definition at line 6159 of file qrhimetal.mm.

References d, layerForWindow(), and window().

Referenced by QRhi::updateSwapChainProxyData().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ baseVertexAndInstance

bool QRhiMetal::baseVertexAndInstance = true

Definition at line 499 of file qrhimetal_p.h.

◆ [struct]

◆ currentSwapChain

QMetalSwapChain* QRhiMetal::currentSwapChain = nullptr

Definition at line 490 of file qrhimetal_p.h.

Referenced by beginFrame(), beginPass(), endFrame(), and finish().

◆ d

◆ driverInfoStruct

QRhiDriverInfo QRhiMetal::driverInfoStruct

Definition at line 493 of file qrhimetal_p.h.

Referenced by create(), driverInfo(), pipelineCacheData(), and setPipelineCacheData().

◆ importedCmdQueue

bool QRhiMetal::importedCmdQueue = false

Definition at line 489 of file qrhimetal_p.h.

Referenced by QRhiMetal(), create(), and destroy().

◆ importedDevice

bool QRhiMetal::importedDevice = false

Definition at line 488 of file qrhimetal_p.h.

Referenced by QRhiMetal(), create(), and destroy().

◆ isAppleGPU

bool QRhiMetal::isAppleGPU = false

Definition at line 501 of file qrhimetal_p.h.

◆ maxTextureSize

int QRhiMetal::maxTextureSize = 4096

Definition at line 498 of file qrhimetal_p.h.

◆ maxThreadGroupSize

int QRhiMetal::maxThreadGroupSize = 512

Definition at line 502 of file qrhimetal_p.h.

◆ multiView

bool QRhiMetal::multiView = false

Definition at line 503 of file qrhimetal_p.h.

◆ nativeHandlesStruct

QRhiMetalNativeHandles QRhiMetal::nativeHandlesStruct

Definition at line 492 of file qrhimetal_p.h.

Referenced by create(), and nativeHandles().

◆ osMajor

quint32 QRhiMetal::osMajor = 0

Definition at line 494 of file qrhimetal_p.h.

Referenced by create(), pipelineCacheData(), and setPipelineCacheData().

◆ osMinor

quint32 QRhiMetal::osMinor = 0

Definition at line 495 of file qrhimetal_p.h.

Referenced by create(), pipelineCacheData(), and setPipelineCacheData().

◆ rhiFlags

◆ SUPPORTED_STAGES

const int QRhiMetal::SUPPORTED_STAGES = 5
static

Definition at line 450 of file qrhimetal_p.h.

Referenced by enqueueShaderResourceBindings(), and setShaderResources().

◆ supportedSampleCounts

QVector< int > QRhiMetal::supportedSampleCounts

Definition at line 500 of file qrhimetal_p.h.

Referenced by effectiveSampleCount().

◆ swapchains

QSet<QMetalSwapChain *> QRhiMetal::swapchains

Definition at line 491 of file qrhimetal_p.h.

Referenced by beginFrame(), beginOffscreenFrame(), and finish().


The documentation for this class was generated from the following files: