Diligent Engine
 
Loading...
Searching...
No Matches
Diligent::IRenderDeviceMtl Struct Referenceabstract

Exposes Metal-specific functionality of a render device. More...

#include <RenderDeviceMtl.h>

Inheritance diagram for Diligent::IRenderDeviceMtl:
Diligent.IRenderDevice Diligent.IObject

Public Member Functions

virtual id< MTLDevice > DILIGENT_CALL_TYPE GetMtlDevice () const =0
 Returns the pointer to Metal device (MTLDevice).
 
virtual void DILIGENT_CALL_TYPE CreateTextureFromMtlResource (id< MTLTexture > mtlTexture, RESOURCE_STATE InitialState, ITexture **ppTexture)=0
 Creates a texture from existing Metal resource.
 
virtual void DILIGENT_CALL_TYPE CreateBufferFromMtlResource (id< MTLBuffer > mtlBuffer, const BufferDesc &BuffDesc, RESOURCE_STATE InitialState, IBuffer **ppBuffer)=0
 Creates a buffer from existing Metal resource.
 
virtual void DILIGENT_CALL_TYPE CreateBLASFromMtlResource (id< MTLAccelerationStructure > mtlBLAS, const BottomLevelASDesc &Desc, RESOURCE_STATE InitialState, IBottomLevelAS **ppBLAS) API_AVAILABLE(ios(14)
 Creates a buffer from existing Metal resource.
 
virtual void DILIGENT_CALL_TYPE CreateTLASFromMtlResource (id< MTLAccelerationStructure > mtlTLAS, const TopLevelASDesc &Desc, RESOURCE_STATE InitialState, ITopLevelAS **ppTLAS) API_AVAILABLE(ios(14)
 Creates a buffer from existing Metal resource.
 
virtual void DILIGENT_CALL_TYPE CreateRasterizationRateMapFromMtlResource (id< MTLRasterizationRateMap > mtlRRM, IRasterizationRateMapMtl **ppRRM) API_AVAILABLE(ios(13)
 Creates a rasterization rate map from existing Metal resource.
 
virtual void DILIGENT_CALL_TYPE CreateRasterizationRateMap (const RasterizationRateMapCreateInfo &CreateInfo, IRasterizationRateMapMtl **ppRRM)=0
 Creates a rasterization rate map.
 
virtual void DILIGENT_CALL_TYPE CreateSparseTexture (const TextureDesc &TexDesc, IDeviceMemory *pMemory, ITexture **ppTexture)=0
 
- Public Member Functions inherited from Diligent.IRenderDevice
virtual void DILIGENT_CALL_TYPE CreateBuffer (const BufferDesc &BuffDesc, const BufferData *pBuffData, IBuffer **ppBuffer)=0
 Creates a new buffer object.
 
virtual void DILIGENT_CALL_TYPE CreateShader (const ShaderCreateInfo &ShaderCI, IShader **ppShader, IDataBlob **ppCompilerOutput=nullptr)=0
 Creates a new shader object.
 
virtual void DILIGENT_CALL_TYPE CreateTexture (const TextureDesc &TexDesc, const TextureData *pData, ITexture **ppTexture)=0
 Creates a new texture object.
 
virtual void DILIGENT_CALL_TYPE CreateSampler (const SamplerDesc &SamDesc, ISampler **ppSampler)=0
 Creates a new sampler object.
 
virtual void DILIGENT_CALL_TYPE CreateResourceMapping (const ResourceMappingCreateInfo &ResMappingCI, IResourceMapping **ppMapping)=0
 Creates a new resource mapping.
 
virtual void DILIGENT_CALL_TYPE CreateGraphicsPipelineState (const GraphicsPipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState)=0
 Creates a new graphics pipeline state object.
 
virtual void DILIGENT_CALL_TYPE CreateComputePipelineState (const ComputePipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState)=0
 Creates a new compute pipeline state object.
 
virtual void DILIGENT_CALL_TYPE CreateRayTracingPipelineState (const RayTracingPipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState)=0
 Creates a new ray tracing pipeline state object.
 
virtual void DILIGENT_CALL_TYPE CreateTilePipelineState (const TilePipelineStateCreateInfo &PSOCreateInfo, IPipelineState **ppPipelineState)=0
 Creates a new tile pipeline state object.
 
virtual void DILIGENT_CALL_TYPE CreateFence (const FenceDesc &Desc, IFence **ppFence)=0
 Creates a new fence object.
 
virtual void DILIGENT_CALL_TYPE CreateQuery (const QueryDesc &Desc, IQuery **ppQuery)=0
 Creates a new query object.
 
virtual void DILIGENT_CALL_TYPE CreateRenderPass (const RenderPassDesc &Desc, IRenderPass **ppRenderPass)=0
 Creates a render pass object.
 
virtual void DILIGENT_CALL_TYPE CreateFramebuffer (const FramebufferDesc &Desc, IFramebuffer **ppFramebuffer)=0
 Creates a framebuffer object.
 
virtual void DILIGENT_CALL_TYPE CreateBLAS (const BottomLevelASDesc &Desc, IBottomLevelAS **ppBLAS)=0
 Creates a bottom-level acceleration structure object (BLAS).
 
virtual void DILIGENT_CALL_TYPE CreateTLAS (const TopLevelASDesc &Desc, ITopLevelAS **ppTLAS)=0
 Creates a top-level acceleration structure object (TLAS).
 
virtual void DILIGENT_CALL_TYPE CreateSBT (const ShaderBindingTableDesc &Desc, IShaderBindingTable **ppSBT)=0
 Creates a shader resource binding table object (SBT).
 
virtual void DILIGENT_CALL_TYPE CreatePipelineResourceSignature (const PipelineResourceSignatureDesc &Desc, IPipelineResourceSignature **ppSignature)=0
 Creates a pipeline resource signature object.
 
virtual void DILIGENT_CALL_TYPE CreateDeviceMemory (const DeviceMemoryCreateInfo &CreateInfo, IDeviceMemory **ppMemory)=0
 Creates a device memory object.
 
virtual void DILIGENT_CALL_TYPE CreatePipelineStateCache (const PipelineStateCacheCreateInfo &CreateInfo, IPipelineStateCache **ppPSOCache)=0
 Creates a pipeline state cache object.
 
virtual void DILIGENT_CALL_TYPE CreateDeferredContext (IDeviceContext **ppContext)=0
 Creates a deferred context.
 
virtual const RenderDeviceInfo &DILIGENT_CALL_TYPE GetDeviceInfo () const =0
 Returns the device information, see Diligent::RenderDeviceInfo for details.
 
virtual const GraphicsAdapterInfo &DILIGENT_CALL_TYPE GetAdapterInfo () const =0
 Returns the graphics adapter information, see Diligent::GraphicsAdapterInfo for details.
 
virtual const TextureFormatInfo &DILIGENT_CALL_TYPE GetTextureFormatInfo (TEXTURE_FORMAT TexFormat) const =0
 Returns the basic texture format information.
 
virtual const TextureFormatInfoExt &DILIGENT_CALL_TYPE GetTextureFormatInfoExt (TEXTURE_FORMAT TexFormat)=0
 Returns the extended texture format information.
 
virtual SparseTextureFormatInfo DILIGENT_CALL_TYPE GetSparseTextureFormatInfo (TEXTURE_FORMAT TexFormat, RESOURCE_DIMENSION Dimension, Uint32 SampleCount) const =0
 Returns the sparse texture format info for the given texture format, resource dimension and sample count.
 
virtual void DILIGENT_CALL_TYPE ReleaseStaleResources (Bool ForceRelease=false)=0
 
virtual void DILIGENT_CALL_TYPE IdleGPU ()=0
 Waits until all outstanding operations on the GPU are complete.
 
virtual IEngineFactory *DILIGENT_CALL_TYPE GetEngineFactory () const =0
 Returns engine factory this device was created from.
 
virtual IThreadPool *DILIGENT_CALL_TYPE GetShaderCompilationThreadPool () const =0
 Returns a pointer to the shader compilation thread pool.
 
void CreatePipelineState (const GraphicsPipelineStateCreateInfo &CI, IPipelineState **ppPipelineState)
 Overloaded alias for CreateGraphicsPipelineState.
 
void CreatePipelineState (const ComputePipelineStateCreateInfo &CI, IPipelineState **ppPipelineState)
 Overloaded alias for CreateComputePipelineState.
 
void CreatePipelineState (const RayTracingPipelineStateCreateInfo &CI, IPipelineState **ppPipelineState)
 Overloaded alias for CreateRayTracingPipelineState.
 
void CreatePipelineState (const TilePipelineStateCreateInfo &CI, IPipelineState **ppPipelineState)
 Overloaded alias for CreateTilePipelineState.
 
- Public Member Functions inherited from Diligent.IObject
virtual void DILIGENT_CALL_TYPE QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE AddRef ()=0
 Increments the number of strong references by 1.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Release ()=0
 
virtual IReferenceCounters *DILIGENT_CALL_TYPE GetReferenceCounters () const =0
 

Detailed Description

Exposes Metal-specific functionality of a render device.

Member Function Documentation

◆ CreateSparseTexture()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderDeviceMtl::CreateSparseTexture ( const TextureDesc & TexDesc,
IDeviceMemory * pMemory,
ITexture ** ppTexture )
pure virtual

Creates a sparse texture

Note
Before you release a sparse texture, unmap all of its sparse tiles. Otherwise, the sparse heap continues to mark those tiles as mapped. However, all mapped tile memory is freed when you release the heap.