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

Serialization device interface. More...

#include <SerializationDevice.h>

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

Public Member Functions

virtual void DILIGENT_CALL_TYPE CreateShader (const ShaderCreateInfo &ShaderCI, const ShaderArchiveInfo &ArchiveInfo, IShader **ppShader, IDataBlob **ppCompilerOutput=nullptr)=0
 Creates a serialized shader.
 
virtual void DILIGENT_CALL_TYPE CreatePipelineResourceSignature (const PipelineResourceSignatureDesc &Desc, const ResourceSignatureArchiveInfo &ArchiveInfo, IPipelineResourceSignature **ppSignature)=0
 Creates a serialized pipeline resource signature.
 
virtual void DILIGENT_CALL_TYPE CreateGraphicsPipelineState (const GraphicsPipelineStateCreateInfo &PSOCreateInfo, const PipelineStateArchiveInfo &ArchiveInfo, IPipelineState **ppPipelineState)=0
 Creates a serialized graphics pipeline state.
 
virtual void DILIGENT_CALL_TYPE CreateComputePipelineState (const ComputePipelineStateCreateInfo &PSOCreateInfo, const PipelineStateArchiveInfo &ArchiveInfo, IPipelineState **ppPipelineState)=0
 Creates a serialized compute pipeline state.
 
virtual void DILIGENT_CALL_TYPE CreateRayTracingPipelineState (const RayTracingPipelineStateCreateInfo &PSOCreateInfo, const PipelineStateArchiveInfo &ArchiveInfo, IPipelineState **ppPipelineState)=0
 Creates a serialized ray tracing pipeline state.
 
virtual void DILIGENT_CALL_TYPE CreateTilePipelineState (const TilePipelineStateCreateInfo &PSOCreateInfo, const PipelineStateArchiveInfo &ArchiveInfo, IPipelineState **ppPipelineState)=0
 Creates a serialized tile pipeline state.
 
virtual void DILIGENT_CALL_TYPE GetPipelineResourceBindings (const PipelineResourceBindingAttribs &Attribs, Uint32 &NumBindings, const PipelineResourceBinding *&pBindings)=0
 Populates an array of pipeline resource bindings.
 
virtual ARCHIVE_DEVICE_DATA_FLAGS DILIGENT_CALL_TYPE GetSupportedDeviceFlags () const =0
 Returns a combination of supported device flags, see Diligent::ARCHIVE_DEVICE_DATA_FLAGS.
 
virtual void DILIGENT_CALL_TYPE AddRenderDevice (IRenderDevice *pDevice)=0
 
void CreatePipelineState (const GraphicsPipelineStateCreateInfo &CI, const PipelineStateArchiveInfo &ArchiveInfo, IPipelineState **ppPipelineState)
 Overloaded alias for ISerializationDevice::CreateGraphicsPipelineState.
 
void CreatePipelineState (const ComputePipelineStateCreateInfo &CI, const PipelineStateArchiveInfo &ArchiveInfo, IPipelineState **ppPipelineState)
 Overloaded alias for ISerializationDevice::CreateComputePipelineState.
 
void CreatePipelineState (const RayTracingPipelineStateCreateInfo &CI, const PipelineStateArchiveInfo &ArchiveInfo, IPipelineState **ppPipelineState)
 Overloaded alias for ISerializationDevice::CreateRayTracingPipelineState.
 
void CreatePipelineState (const TilePipelineStateCreateInfo &CI, const PipelineStateArchiveInfo &ArchiveInfo, IPipelineState **ppPipelineState)
 Overloaded alias for ISerializationDevice::CreateTilePipelineState.
 
- 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

Serialization device interface.

Member Function Documentation

◆ AddRenderDevice()

virtual void DILIGENT_CALL_TYPE Diligent::ISerializationDevice::AddRenderDevice ( IRenderDevice * pDevice)
pure virtual

Adds a optional render device that will be used to initialize device-specific objects that may be used for rendering (e.g. shaders). For example, a shader object retrieved with ISerializedShader::GetDeviceShader() will be suitable for rendering.

◆ CreateComputePipelineState()

virtual void DILIGENT_CALL_TYPE Diligent::ISerializationDevice::CreateComputePipelineState ( const ComputePipelineStateCreateInfo & PSOCreateInfo,
const PipelineStateArchiveInfo & ArchiveInfo,
IPipelineState ** ppPipelineState )
pure virtual

Creates a serialized compute pipeline state.

Parameters
[in]PSOCreateInfo- Compute pipeline state create info, see Diligent::ComputePipelineStateCreateInfo for details.
[in]ArchiveInfo- Pipeline state archive info, see Diligent::PipelineStateArchiveInfo for details.
[out]ppPipelineState- Address of the memory location where a pointer to the serialized pipeline state object will be written.
Note
All objects that PSOCreateInfo references (shaders, resource signatures) must be serialized objects created by the same serialization device.

The method is thread-safe and may be called from multiple threads simultaneously.

◆ CreateGraphicsPipelineState()

virtual void DILIGENT_CALL_TYPE Diligent::ISerializationDevice::CreateGraphicsPipelineState ( const GraphicsPipelineStateCreateInfo & PSOCreateInfo,
const PipelineStateArchiveInfo & ArchiveInfo,
IPipelineState ** ppPipelineState )
pure virtual

Creates a serialized graphics pipeline state.

Parameters
[in]PSOCreateInfo- Graphics pipeline state create info, see Diligent::GraphicsPipelineStateCreateInfo for details.
[in]ArchiveInfo- Pipeline state archive info, see Diligent::PipelineStateArchiveInfo for details.
[out]ppPipelineState- Address of the memory location where a pointer to the serialized pipeline state object will be written.
Note
All objects that PSOCreateInfo references (shaders, render pass, resource signatures) must be serialized objects created by the same serialization device.

The method is thread-safe and may be called from multiple threads simultaneously.

◆ CreatePipelineResourceSignature()

virtual void DILIGENT_CALL_TYPE Diligent::ISerializationDevice::CreatePipelineResourceSignature ( const PipelineResourceSignatureDesc & Desc,
const ResourceSignatureArchiveInfo & ArchiveInfo,
IPipelineResourceSignature ** ppSignature )
pure virtual

Creates a serialized pipeline resource signature.

Parameters
[in]Desc- Pipeline resource signature description, see Diligent::PipelineResourceSignatureDesc for details.
[in]ArchiveInfo- Signature archive info, see Diligent::ResourceSignatureArchiveInfo for details.
[out]ppShader- Address of the memory location where a pointer to the serialized pipeline resource signature object will be written.
Note
The method is thread-safe and may be called from multiple threads simultaneously.

◆ CreateRayTracingPipelineState()

virtual void DILIGENT_CALL_TYPE Diligent::ISerializationDevice::CreateRayTracingPipelineState ( const RayTracingPipelineStateCreateInfo & PSOCreateInfo,
const PipelineStateArchiveInfo & ArchiveInfo,
IPipelineState ** ppPipelineState )
pure virtual

Creates a serialized ray tracing pipeline state.

Parameters
[in]PSOCreateInfo- Ray tracing pipeline state create info, see Diligent::RayTracingPipelineStateCreateInfo for details.
[in]ArchiveInfo- Pipeline state archive info, see Diligent::PipelineStateArchiveInfo for details.
[out]ppPipelineState- Address of the memory location where a pointer to the serialized pipeline state object will be written.
Note
All objects that PSOCreateInfo references (shaders, resource signatures) must be serialized objects created by the same serialization device.

The method is thread-safe and may be called from multiple threads simultaneously.

◆ CreateShader()

virtual void DILIGENT_CALL_TYPE Diligent::ISerializationDevice::CreateShader ( const ShaderCreateInfo & ShaderCI,
const ShaderArchiveInfo & ArchiveInfo,
IShader ** ppShader,
IDataBlob ** ppCompilerOutput = nullptr )
pure virtual

Creates a serialized shader.

Parameters
[in]ShaderCI- Shader create info, see Diligent::ShaderCreateInfo for details.
[in]ArchiveInfo- Shader archive info, see Diligent::ShaderArchiveInfo for details.
[out]ppShader- Address of the memory location where a pointer to the shader interface will be written.
[out]ppCompilerOutput- Address of the memory location where a pointer to the shader compiler output will be written. If null, the output will be ignored.
Note
The method is thread-safe and may be called from multiple threads simultaneously.

◆ CreateTilePipelineState()

virtual void DILIGENT_CALL_TYPE Diligent::ISerializationDevice::CreateTilePipelineState ( const TilePipelineStateCreateInfo & PSOCreateInfo,
const PipelineStateArchiveInfo & ArchiveInfo,
IPipelineState ** ppPipelineState )
pure virtual

Creates a serialized tile pipeline state.

Parameters
[in]PSOCreateInfo- Tile pipeline state create info, see Diligent::TilePipelineStateCreateInfo for details.
[in]ArchiveInfo- Pipeline state archive info, see Diligent::PipelineStateArchiveInfo for details.
[out]ppPipelineState- Address of the memory location where a pointer to the serialized pipeline state interface will be written.
Note
All objects that PSOCreateInfo references (shaders, resource signatures) must be serialized objects created by the same serialization device.

The method is thread-safe and may be called from multiple threads simultaneously.