Skip to content

LiteFX::Rendering::Backends::DirectX12Device

Implements a DirectX 12 graphics device.

Synopsis

Declared in <litefx/backends/dx12.hpp>

Base Classes

Type Aliases

Member Functions

NameDescription
~DirectX12Device [destructor] [virtual]Destructor
adapter [virtual]Returns the graphics adapter, the device uses for drawing.
allocateGlobalDescriptors [virtual]Allocates a descriptor range with a capacity of descriptors from the global descriptor heap indicated by heapType. This overload allocates a raw descriptor range from a global descriptor heap. It is intended for interop purposes, where external libraries need to bind resources, as well as bindless rendering using SM 6.6 dynamic resources (ResourceDescriptorHeap/SamplerDescriptorHeap).
allocateGlobalDescriptors [virtual]Allocates a descriptor range with a capacity of descriptors from the global descriptor heap indicated by heapType. This overload allocates a raw descriptor range from a global descriptor heap. It is intended for interop purposes, where external libraries need to bind resources, as well as bindless rendering using SM 6.6 dynamic resources (ResourceDescriptorHeap/SamplerDescriptorHeap).
allocateGlobalDescriptors [virtual]Allocates a range of descriptors in the global descriptor heap indicated by heapType for the provided descriptorSet.
bindDescriptorSet Binds the descriptors of the descriptor set to the global descriptor heaps.
bindGlobalDescriptorHeaps [virtual]Binds the global descriptor heap.
bindGlobalDescriptorHeaps [virtual]Binds the global descriptor heap.
buildBarrier [virtual]Returns a builder for a Barrier.
buildComputePipeline [virtual]Returns a builder for a ComputePipeline.
buildInputAssembler [virtual]Returns a builder for a InputAssembler.
buildPipelineLayout [virtual]Returns a builder for a PipelineLayout.
buildRasterizer [virtual]Returns a builder for a Rasterizer.
buildRayTracingPipeline [virtual]Returns a builder for a RayTracingPipeline.
buildRayTracingPipeline [virtual]Returns a builder for a RayTracingPipeline.
buildRenderPass [virtual]Returns a builder for a RenderPass.
buildRenderPass [virtual]Returns a builder for a RenderPass.
buildRenderPipeline [virtual]Returns a builder for a RenderPipeline.
buildRenderPipeline [virtual]Returns a builder for a RenderPipeline.
buildShaderProgram [virtual]Returns a builder for a ShaderProgram.
computeAccelerationStructureSizes [virtual]Computes the required amount of device memory for an IBottomLevelAccelerationStructure.
computeAccelerationStructureSizes [virtual]Computes the required amount of device memory for an ITopLevelAccelerationStructure.
computeAccelerationStructureSizes [virtual]Computes the required amount of device memory for an IBottomLevelAccelerationStructure.
computeAccelerationStructureSizes [virtual]Computes the required amount of device memory for an ITopLevelAccelerationStructure.
copyGlobalDescriptorHeap Copies descriptors descriptors from a CPU-only heap, starting at source, into the global heapType heap at targetIndex.
createQueue [virtual]Attempts to create a new queue that supports the combination of queue types specified by the type parameter.
createQueue [virtual]Attempts to create a new queue that supports the combination of queue types specified by the type parameter.
defaultQueue [virtual]Returns the instance of the default ICommandQueue that supports the combination of queue types specified by the type parameter.
descriptorHeaps [virtual]Returns the global descriptor heaps from which all descriptors in the device are allocated.
factory [virtual]Returns the factory instance, used to create instances from the device.
globalBufferHeap Returns the global descriptor heap.
globalSamplerHeap Returns the global sampler heap.
handle [virtual]Returns the resource managed by the class.
indirectDrawSignatures Returns the command signatures for indirect dispatch and draw calls.
makeBarrier [virtual]Creates a memory barrier instance.
makeFrameBuffer Creates a new frame buffer instance.
makeFrameBuffer [virtual]Creates a new frame buffer instance.
makeFrameBuffer Creates a new frame buffer instance.
makeFrameBuffer [virtual]Creates a new frame buffer instance.
makeFrameBuffer [virtual]Creates a new frame buffer instance.
maximumMultiSamplingLevel [virtual]Queries the device for the maximum supported number of multi-sampling levels.
state [virtual]Returns the device state that can be used to manage resources.
supportsStorageImageFormat [virtual]Returns true, if format can be used in writable images, i.e., as RWTexture<T>.
supportsTexelBufferFormat [virtual]Returns true, if format can be used in texel buffers, i.e., as Buffer<T>, or as RWBuffer<T> if writable is set.
surface [virtual]Returns the surface, the device draws to.
swapChain [virtual]Returns the swap chain, that contains the back and front buffers used for presentation.
swapChain [virtual]Returns the swap chain, that contains the back and front buffers used for presentation.
ticksPerMillisecond [virtual]Returns the number of GPU ticks per milliseconds.
updateGlobalDescriptors Updates a range of descriptors in the global buffer descriptor heap with the descriptors from descriptorSet.
wait [virtual]Waits until all queues allocated from the device have finished the work issued prior to this point.

Static Member Functions

NameDescription
create Initializes the device instance.
create Initializes the device instance.

Protected Member Functions

NameDescription
operator= Assignment operator
operator= [deleted]Assignment operator
operator= Assignment operator
operator= Assignment operator
handle [virtual]Returns the resource managed by the class.

Friends

NameDescription
LiteFX::Rendering::Backends::DirectX12DescriptorRangeImplements a DirectX12 IDescriptorRange.
LiteFX::Rendering::Backends::DirectX12DescriptorSetImplements a DirectX 12 DescriptorSet.
LiteFX::Rendering::Backends::DirectX12BackendImplements the DirectX 12 RenderBackend.
LiteFX::SharedObject::AllocatorAn allocator used to allocate the shared object.
LiteFX::Rendering::Backends::DirectX12Device::DirectX12DeviceImpl
LiteFX::PimplPtrA smart pointer that manages an implementation instance for a public interface class.