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
Data uploading utility via pages.
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