Class GPUDeviceDX12
Implementation of Graphics Device for DirectX 12 rendering system
Inherited Members
Assembly: FlaxEngine.dll
File: Engine/GraphicsDevice/DirectX/DX12/GPUDeviceDX12.h
Syntax
public class GPUDeviceDX12 : public GPUDeviceDX
Constructors
~GPUDeviceDX12()
Declaration
public ~GPUDeviceDX12()
GPUDeviceDX12(IDXGIFactory4* dxgiFactory, GPUAdapterDX* adapter)
Declaration
public GPUDeviceDX12(IDXGIFactory4* dxgiFactory, GPUAdapterDX* adapter)
Parameters
IDXGIFactory4
dxgiFactory
|
GPUAdapterDX
adapter
|
Fields
AllowTearing
Declaration
public bool AllowTearing = false
Field Value
bool
|
DispatchIndirectCommandSignature
Declaration
public CommandSignatureDX12* DispatchIndirectCommandSignature = nullptr
Field Value
CommandSignatureDX12
|
DrawIndexedIndirectCommandSignature
Declaration
public CommandSignatureDX12* DrawIndexedIndirectCommandSignature = nullptr
Field Value
CommandSignatureDX12
|
DrawIndirectCommandSignature
Declaration
public CommandSignatureDX12* DrawIndirectCommandSignature = nullptr
Field Value
CommandSignatureDX12
|
DummyVB
Heap_CBV_SRV_UAV
Heap_DSV
Heap_RTV
Heap_Sampler
RingHeap_CBV_SRV_UAV
Declaration
public DescriptorHeapRingBufferDX12 RingHeap_CBV_SRV_UAV
Field Value
DescriptorHeapRingBufferDX12
|
RingHeap_Sampler
Declaration
public DescriptorHeapRingBufferDX12 RingHeap_Sampler
Field Value
DescriptorHeapRingBufferDX12
|
TimestampQueryHeap
The timestamp queries heap.
Declaration
public QueryHeapDX12 TimestampQueryHeap
Field Value
QueryHeapDX12
|
UploadBuffer
Upload buffer for general purpose
Declaration
public UploadBufferDX12* UploadBuffer
Field Value
UploadBufferDX12
|
Methods
AddResourceToLateRelease(IGraphicsUnknown* resource, uint32 safeFrameCount=DX12_RESOURCE_DELETE_SAFE_FRAMES_COUNT)
Declaration
public void AddResourceToLateRelease(IGraphicsUnknown* resource, uint32 safeFrameCount=DX12_RESOURCE_DELETE_SAFE_FRAMES_COUNT)
Parameters
IGraphicsUnknown
resource
|
uint32
safeFrameCount
|
Create()
CreateBuffer(const StringView& name)
Creates the buffer.
Declaration
public virtual GPUBuffer* CreateBuffer(const StringView& name) override
Parameters
StringView
name
The resource name. |
Returns
GPUBuffer
The buffer. |
Overrides
CreateConstantBuffer(uint32 size, const StringView& name)
Creates the constant buffer.
Declaration
public virtual GPUConstantBuffer* CreateConstantBuffer(uint32 size, const StringView& name) override
Parameters
uint32
size
The buffer size (in bytes). |
StringView
name
The resource name. |
Returns
GPUConstantBuffer
The constant buffer. |
Overrides
CreatePipelineState()
Creates the GPU pipeline state object.
Declaration
public virtual GPUPipelineState* CreatePipelineState() override
Returns
GPUPipelineState
The pipeline state. |
Overrides
CreateSampler()
Creates the texture sampler.
Declaration
public virtual GPUSampler* CreateSampler() override
Returns
GPUSampler
The sampler. |
Overrides
CreateShader(const StringView& name)
Creates the shader.
Declaration
public virtual GPUShader* CreateShader(const StringView& name) override
Parameters
StringView
name
The resource name. |
Returns
GPUShader
The shader. |
Overrides
CreateSwapChain(Window* window)
Creates the native window swap chain.
Declaration
public virtual GPUSwapChain* CreateSwapChain(Window* window) override
Parameters
Window
window
The output window. |
Returns
GPUSwapChain
The native window swap chain. |
Overrides
CreateTexture(const StringView& name)
Creates the texture.
Declaration
public virtual GPUTexture* CreateTexture(const StringView& name) override
Parameters
StringView
name
The resource name. |
Returns
GPUTexture
The texture. |
Overrides
CreateTimerQuery()
Creates the timer query object.
Declaration
public virtual GPUTimerQuery* CreateTimerQuery() override
Returns
GPUTimerQuery
The timer query. |
Overrides
CreateVertexLayout(const VertexElements& elements, bool explicitOffsets)
Declaration
public GPUVertexLayout* CreateVertexLayout(const VertexElements& elements, bool explicitOffsets) override
Parameters
VertexElements
elements
|
bool
explicitOffsets
|
Returns
GPUVertexLayout
|
Dispose()
Clean all allocated data by device
Declaration
public virtual void Dispose() final override
Overrides
DrawBegin()
Called during Draw method before any frame rendering initialization. Cannot be used to submit commands to GPU.
Declaration
public virtual void DrawBegin() override
Overrides
GetCommandList()
Gets DirectX 12 command list object
Declaration
public ID3D12GraphicsCommandList* GetCommandList() const
Returns
ID3D12GraphicsCommandList
|
GetCommandQueue()
Gets command queue.
Declaration
public CommandQueueDX12* GetCommandQueue() const
Returns
CommandQueueDX12
|
GetCommandQueueDX12()
Gets DirectX 12 command queue object.
Declaration
public ID3D12CommandQueue* GetCommandQueueDX12() const
Returns
ID3D12CommandQueue
|
GetDevice()
Gets DX12 device.
Declaration
public ID3D12Device* GetDevice() const
Returns
ID3D12Device
|
GetDXGIFactory()
Gets DXGI factory.
Declaration
public IDXGIFactory4* GetDXGIFactory() const
Returns
IDXGIFactory4
|
GetMainContext()
Gets the main GPU context.
Declaration
public virtual GPUContext* GetMainContext() override
Returns
GPUContext
|
Overrides
GetMainContextDX12()
Gets main commands context (for DirectX 12)
Declaration
public GPUContextDX12* GetMainContextDX12() const
Returns
GPUContextDX12
|
GetMaxMSAAQuality(uint32 sampleCount)
Declaration
public static uint32 GetMaxMSAAQuality(uint32 sampleCount)
Parameters
uint32
sampleCount
|
Returns
uint32
|
GetNativePtr()
Gets the native pointer to the underlying graphics device. It's a low-level platform-specific handle.
Declaration
public virtual void* GetNativePtr() const override
Returns
void
|
Overrides
GetRootSignature()
Gets root signature of the graphics pipeline.
Declaration
public ID3D12RootSignature* GetRootSignature() const
Returns
ID3D12RootSignature
|
Init()
Init device resources
Declaration
public virtual bool Init() override
Returns
bool
True if cannot init, otherwise false. |
Overrides
NullSRV(D3D12_SRV_DIMENSION dimension)
Declaration
public D3D12_CPU_DESCRIPTOR_HANDLE NullSRV(D3D12_SRV_DIMENSION dimension) const
Parameters
D3D12_SRV_DIMENSION
dimension
|
Returns
D3D12_CPU_DESCRIPTOR_HANDLE
|
NullUAV()
Declaration
public D3D12_CPU_DESCRIPTOR_HANDLE NullUAV() const
Returns
D3D12_CPU_DESCRIPTOR_HANDLE
|
RenderEnd()
Called during Draw method before rendering end. Can be used to submit commands to the GPU before closing GPU command list.
Declaration
public virtual void RenderEnd() override
Overrides
WaitForGPU()
Wait for GPU end doing submitted work
Declaration
public virtual void WaitForGPU() override