XII Release 0.1.0
Loading...
Searching...
No Matches
xiiGALDeviceD3D12 Class Referencefinal
Inheritance diagram for xiiGALDeviceD3D12:
[legend]

Public Member Functions

virtual xiiGALCommandQueue * GetCommandQueue (xiiBitflags< xiiGALCommandQueueFlags > queueFlags) const override final
XII_ALWAYS_INLINE xiiGALCommandListPoolD3D12 * GetCommandListPool (xiiBitflags< xiiGALCommandQueueFlags > queueFlags) const
 Copyright (c) Theophilus Eriata. All Rights Reserved.
XII_ALWAYS_INLINE xiiGALQueryPoolD3D12 * GetCommandQueueQueryPool (xiiBitflags< xiiGALCommandQueueFlags > queueFlags) const
XII_ALWAYS_INLINE xiiGALFencePoolD3D12 * GetD3D12FencePool () const
XII_ALWAYS_INLINE xiiGALDescriptorSetPoolD3D12 * GetResourceDescriptorPool () const
XII_ALWAYS_INLINE xiiD3D12MemoryAllocator * GetD3D12Allocator () const
XII_ALWAYS_INLINE ID3D12Device1 * GetD3D12Device () const
XII_ALWAYS_INLINE IDXGIAdapter1 * GetDXGIAdapter () const
XII_ALWAYS_INLINE IDXGIFactory4 * GetDXGIFactory () const
void SafeReleaseDeviceObject (IUnknown *&pObject)
void SafeReleaseBuffer (ID3D12Resource *&pResource, xiiD3D12Allocation &allocation)
void SafeReleaseTexture (ID3D12Resource *&pResource, xiiD3D12Allocation &allocation, bool bIsStagingTexture)
void ReportLiveGPUObjects ()
Public Member Functions inherited from xiiGALDevice
xiiResult Initialize ()
 Initialize device.
void BeginFrame ()
 Begins a render frame.
void EndFrame ()
 Ends a render frame.
void WaitIdle ()
const xiiGALDeviceCreationDescription & GetDescription () const
 Returns the creation description for this device.
XII_ALWAYS_INLINE xiiAllocator * GetAllocator ()
const xiiGALGraphicsDeviceAdapterDescription & GetGraphicsDeviceAdapterProperties () const
 This retrieves the device properties. See xiiGraphicsDeviceAdapterDescription.
const xiiGALDeviceFeatures & GetFeatures () const
 This retrieves the device feature states. See xiiGALDeviceFeatures.
const xiiGALDeviceLimits & GetLimits () const
 This retrieves the device limits. See xiiGALDeviceLimits.
xiiEnum< xiiGALGraphicsDeviceType > GetGraphicsDeviceType () const
 This retrieves the device graphics API type. See xiiGALGraphicsDeviceType.
xiiMutex & GetMutex () const
 This returns critical section lock.
xiiSharedPtr< xiiGALSwapChain > CreateSwapChain (const xiiGALSwapChainCreationDescription &description)
xiiSharedPtr< xiiGALCommandList > CreateCommandList (const xiiGALCommandListCreationDescription &description)
xiiSharedPtr< xiiGALBlendState > CreateBlendState (const xiiGALBlendStateCreationDescription &description)
xiiSharedPtr< xiiGALDepthStencilState > CreateDepthStencilState (const xiiGALDepthStencilStateCreationDescription &description)
xiiSharedPtr< xiiGALRasterizerState > CreateRasterizerState (const xiiGALRasterizerStateCreationDescription &description)
xiiSharedPtr< xiiGALShader > CreateShader (const xiiGALShaderCreationDescription &description)
xiiSharedPtr< xiiGALBuffer > CreateBuffer (const xiiGALBufferCreationDescription &description, const xiiGALBufferData *pInitialData=nullptr, xiiBitflags< xiiGALExternalMemoryKind > externalMemoryKind=xiiGALExternalMemoryKind::None)
xiiSharedPtr< xiiGALTexture > CreateTexture (const xiiGALTextureCreationDescription &description, const xiiGALTextureData *pInitialData=nullptr, xiiBitflags< xiiGALExternalMemoryKind > externalMemoryKind=xiiGALExternalMemoryKind::None)
xiiSharedPtr< xiiGALSampler > CreateSampler (const xiiGALSamplerCreationDescription &description)
xiiSharedPtr< xiiGALQuery > CreateQuery (const xiiGALQueryCreationDescription &description)
xiiSharedPtr< xiiGALFence > CreateFence (const xiiGALFenceCreationDescription &description)
xiiSharedPtr< xiiGALRenderPass > CreateRenderPass (const xiiGALRenderPassCreationDescription &description)
xiiSharedPtr< xiiGALFramebuffer > CreateFramebuffer (const xiiGALFramebufferCreationDescription &description)
xiiSharedPtr< xiiGALBottomLevelAS > CreateBottomLevelAS (const xiiGALBottomLevelASCreationDescription &description)
xiiSharedPtr< xiiGALTopLevelAS > CreateTopLevelAS (const xiiGALTopLevelASCreationDescription &description)
xiiSharedPtr< xiiGALPipelineResourceSignature > CreatePipelineResourceSignature (xiiGALPipelineResourceSignatureCreationDescription &description)
xiiSharedPtr< xiiGALGraphicsPipelineState > CreateGraphicsPipelineState (const xiiGALGraphicsPipelineStateCreationDescription &description)
xiiSharedPtr< xiiGALComputePipelineState > CreateComputePipelineState (const xiiGALComputePipelineStateCreationDescription &description)
xiiSharedPtr< xiiGALRayTracingPipelineState > CreateRayTracingPipelineState (const xiiGALRayTracingPipelineStateCreationDescription &description)
xiiSharedPtr< xiiGALTilePipelineState > CreateTilePipelineState (const xiiGALTilePipelineStateCreationDescription &description)
Public Member Functions inherited from xiiGALObject
XII_ALWAYS_INLINE xiiStringView GetDebugName () const
 Returns the debug name of this resource.
void SetDebugName (xiiStringView sDebugName) const
 Sets the debug name for this resource.
Public Member Functions inherited from xiiReflectedClass
virtual const xiiRTTI * GetDynamicRTTI () const
bool IsInstanceOf (const xiiRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
template<typename T>
XII_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
Public Member Functions inherited from xiiRefCounted
virtual ~xiiRefCounted ()=default
 Adds a virtual destructor.
Public Member Functions inherited from xiiRefCountingImpl
 xiiRefCountingImpl ()=default
 Constructor.
 xiiRefCountingImpl (const xiiRefCountingImpl &rhs)
void operator= (const xiiRefCountingImpl &rhs)
xiiUInt32 AddRef () const
 Increments the reference counter. Returns the new reference count.
bool TryAddRef () const
xiiUInt32 ReleaseRef () const
 Decrements the reference counter. Returns the new reference count.ywat.
bool IsReferenced () const
 Returns true if the reference count is greater than 0, false otherwise.
xiiUInt32 GetRefCount () const
 Returns the current reference count.

Protected Member Functions

virtual xiiResult InitializePlatform () override final
virtual xiiResult PostInitializePlatform () override final
virtual void BeginFramePlatform () override final
virtual void EndFramePlatform () override final
virtual xiiInternal::NewInstance< xiiGALSwapChain > CreateSwapChainPlatform (const xiiGALSwapChainCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALCommandList > CreateCommandListPlatform (const xiiGALCommandListCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALBlendState > CreateBlendStatePlatform (const xiiGALBlendStateCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALDepthStencilState > CreateDepthStencilStatePlatform (const xiiGALDepthStencilStateCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALRasterizerState > CreateRasterizerStatePlatform (const xiiGALRasterizerStateCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALShader > CreateShaderPlatform (const xiiGALShaderCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALBuffer > CreateBufferPlatform (const xiiGALBufferCreationDescription &description, const xiiGALBufferData *pInitialData, xiiBitflags< xiiGALExternalMemoryKind > externalMemoryKind) override final
virtual xiiInternal::NewInstance< xiiGALTexture > CreateTexturePlatform (const xiiGALTextureCreationDescription &description, const xiiGALTextureData *pInitialData, xiiBitflags< xiiGALExternalMemoryKind > externalMemoryKind) override final
virtual xiiInternal::NewInstance< xiiGALSampler > CreateSamplerPlatform (const xiiGALSamplerCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALQuery > CreateQueryPlatform (const xiiGALQueryCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALFence > CreateFencePlatform (const xiiGALFenceCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALRenderPass > CreateRenderPassPlatform (const xiiGALRenderPassCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALFramebuffer > CreateFramebufferPlatform (const xiiGALFramebufferCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALBottomLevelAS > CreateBottomLevelASPlatform (const xiiGALBottomLevelASCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALTopLevelAS > CreateTopLevelASPlatform (const xiiGALTopLevelASCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALPipelineResourceSignature > CreatePipelineResourceSignaturePlatform (const xiiGALPipelineResourceSignatureCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALGraphicsPipelineState > CreateGraphicsPipelineStatePlatform (const xiiGALGraphicsPipelineStateCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALComputePipelineState > CreateComputePipelineStatePlatform (const xiiGALComputePipelineStateCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALRayTracingPipelineState > CreateRayTracingPipelineStatePlatform (const xiiGALRayTracingPipelineStateCreationDescription &description) override final
virtual xiiInternal::NewInstance< xiiGALTilePipelineState > CreateTilePipelineStatePlatform (const xiiGALTilePipelineStateCreationDescription &description) override final
virtual void WaitIdlePlatform () override final
virtual xiiResult FillCapabilitiesPlatform () override final
Protected Member Functions inherited from xiiGALDevice
 xiiGALDevice (xiiAllocator *pAllocator, const xiiGALDeviceCreationDescription &creationDescription)
xiiResult PostInitialize ()
 Initialization after device capabilities are known.
void VerifyMultithreadedAccess () const
 Asserts that either this device supports multi-threaded resource creation, or that this function is executed on the main thread.
Protected Member Functions inherited from xiiGALObject
 xiiGALObject ()
 Copyright (c) Theophilus Eriata. All Rights Reserved.
virtual XII_ALWAYS_INLINE void SetDebugNamePlatform (xiiStringView sName) const

Friends

xiiInternal::NewInstance< xiiGALDevice > CreateD3D12Device (xiiAllocator *pAllocator, const xiiGALDeviceCreationDescription &description)

Additional Inherited Members

Static Public Member Functions inherited from xiiGALDevice
static xiiEvent< const xiiGALDeviceEvent &, xiiMutex > & GetEvents ()
 Registers event handlers.
static bool IsRegistryInitialized ()
 Returns whether the process-wide device registry is owned by a running subsystem.
static void SetDefaultDevice (xiiSharedPtr< xiiGALDevice > pDefaultDevice)
 Sets a default graphics device.
static xiiSharedPtr< xiiGALDevice > GetDefaultDevice ()
 Retrieves the default device. This will be nullptr if none is set.
static bool HasDefaultDevice ()
 This returns true if there is a set default device.
Static Public Member Functions inherited from xiiNoBase
static const xiiRTTI * GetStaticRTTI ()
Protected Attributes inherited from xiiGALDevice
xiiGALDeviceCreationDescription m_Description
xiiProxyAllocator m_Allocator
xiiLocalAllocatorWrapper m_AllocatorWrapper
xiiMutex m_Mutex
xiiGALGraphicsDeviceAdapterDescription m_AdapterDescription

Member Function Documentation

◆ GetCommandQueue()

xiiGALCommandQueue * xiiGALDeviceD3D12::GetCommandQueue ( xiiBitflags< xiiGALCommandQueueFlags > queueFlags) const
finaloverridevirtual

Retrieves a pointer to the compute queue if available, null otherwise.

Parameters
queueType- The queue type that has the required feature.
Note
The default graphics queue is guaranteed to exist, for a successful device initialization.

Implements xiiGALDevice.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsD3D12/Device/DeviceD3D12.h
  • /home/runner/work/XII/XII/Source/Engine/GraphicsD3D12/Device/Implementation/DeviceD3D12.cpp
  • /home/runner/work/XII/XII/Source/Engine/GraphicsD3D12/Device/Implementation/DeviceD3D12_inl.h