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

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

#include <RenderDeviceD3D12.h>

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

Public Member Functions

virtual ID3D12Device *DILIGENT_CALL_TYPE GetD3D12Device () const =0
 Returns ID3D12Device interface of the internal Direct3D12 device object.
 
virtual void DILIGENT_CALL_TYPE CreateTextureFromD3DResource (ID3D12Resource *pd3d12Texture, RESOURCE_STATE InitialState, ITexture **ppTexture)=0
 Creates a texture object from native d3d12 resource.
 
virtual void DILIGENT_CALL_TYPE CreateBufferFromD3DResource (ID3D12Resource *pd3d12Buffer, const BufferDesc &BuffDesc, RESOURCE_STATE InitialState, IBuffer **ppBuffer)=0
 Creates a buffer object from native d3d12 resource.
 
virtual void DILIGENT_CALL_TYPE CreateBLASFromD3DResource (ID3D12Resource *pd3d12BLAS, const BottomLevelASDesc &Desc, RESOURCE_STATE InitialState, IBottomLevelAS **ppBLAS)=0
 Creates a bottom-level AS object from native d3d12 resource.
 
virtual void DILIGENT_CALL_TYPE CreateTLASFromD3DResource (ID3D12Resource *pd3d12TLAS, const TopLevelASDesc &Desc, RESOURCE_STATE InitialState, ITopLevelAS **ppTLAS)=0
 Creates a top-level AS object from native d3d12 resource.
 
- 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 Direct3D12-specific functionality of a render device.

Member Function Documentation

◆ CreateBLASFromD3DResource()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderDeviceD3D12::CreateBLASFromD3DResource ( ID3D12Resource * pd3d12BLAS,
const BottomLevelASDesc & Desc,
RESOURCE_STATE InitialState,
IBottomLevelAS ** ppBLAS )
pure virtual

Creates a bottom-level AS object from native d3d12 resource.

Parameters
[in]pd3d12BLAS- Pointer to the native d3d12 acceleration structure resource
[in]Desc- Bottom-level AS description.
[in]InitialState- Initial BLAS state. Can be Diligent::RESOURCE_STATE_UNKNOWN, Diligent::RESOURCE_STATE_BUILD_AS_READ, Diligent::RESOURCE_STATE_BUILD_AS_WRITE. See Diligent::RESOURCE_STATE.
[out]ppBLAS- Address of the memory location where the pointer to the bottom-level AS interface will be stored. The function calls AddRef(), so that the new object will contain one reference.

◆ CreateBufferFromD3DResource()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderDeviceD3D12::CreateBufferFromD3DResource ( ID3D12Resource * pd3d12Buffer,
const BufferDesc & BuffDesc,
RESOURCE_STATE InitialState,
IBuffer ** ppBuffer )
pure virtual

Creates a buffer object from native d3d12 resource.

Parameters
[in]pd3d12Buffer- Pointer to the native d3d12 buffer resource
[in]BuffDesc- Buffer description. The system can recover buffer size, but the rest of the fields need to be populated by the client as they cannot be recovered from d3d12 resource description
[in]InitialState- Initial buffer state. See Diligent::RESOURCE_STATE.
[out]ppBuffer- Address of the memory location where the pointer to the buffer interface will be stored. The function calls AddRef(), so that the new object will contain one reference.

◆ CreateTextureFromD3DResource()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderDeviceD3D12::CreateTextureFromD3DResource ( ID3D12Resource * pd3d12Texture,
RESOURCE_STATE InitialState,
ITexture ** ppTexture )
pure virtual

Creates a texture object from native d3d12 resource.

Parameters
[in]pd3d12Texture- pointer to the native D3D12 texture
[in]InitialState- Initial texture state. See Diligent::RESOURCE_STATE.
[out]ppTexture- Address of the memory location where the pointer to the texture interface will be stored. The function calls AddRef(), so that the new object will contain one reference.

◆ CreateTLASFromD3DResource()

virtual void DILIGENT_CALL_TYPE Diligent::IRenderDeviceD3D12::CreateTLASFromD3DResource ( ID3D12Resource * pd3d12TLAS,
const TopLevelASDesc & Desc,
RESOURCE_STATE InitialState,
ITopLevelAS ** ppTLAS )
pure virtual

Creates a top-level AS object from native d3d12 resource.

Parameters
[in]pd3d12TLAS- Pointer to the native d3d12 acceleration structure resource
[in]Desc- Top-level AS description.
[in]InitialState- Initial TLAS state. Can be Diligent::RESOURCE_STATE_UNKNOWN, Diligent::RESOURCE_STATE_BUILD_AS_READ, Diligent::RESOURCE_STATE_BUILD_AS_WRITE, Diligent::RESOURCE_STATE_RAY_TRACING. See Diligent::RESOURCE_STATE.
[out]ppTLAS- Address of the memory location where the pointer to the top-level AS interface will be stored. The function calls AddRef(), so that the new object will contain one reference.

◆ GetD3D12Device()

virtual ID3D12Device *DILIGENT_CALL_TYPE Diligent::IRenderDeviceD3D12::GetD3D12Device ( ) const
pure virtual

Returns ID3D12Device interface of the internal Direct3D12 device object.

The method does NOT increment the reference counter of the returned object, so Release() must not be called.