Skip to content

LiteFX::Rendering::Backends::DirectX12PushConstantsLayout

Implements the DirectX 12 PushConstantsLayout.

Synopsis

Declared in <litefx/backends/dx12.hpp>

class [[dllimport, dllexport]] DirectX12PushConstantsLayout final
    : public PushConstantsLayout<DirectX12PushConstantsRange>

Description

In DirectX 12, push constants map to root constants. Those are 32 bit values that are directly stored on the root signature. Thus, push constants can bloat your root signature, since all the required memory is directly reserved on it. The way they are implemented is, that each range gets directly written in 4 byte chunks into the command buffer. Thus, overlapping is not directly supported (as opposed to Vulkan). If you have overlapping push constants ranges, the overlap will be duplicated in the root signature.

Base Classes

NameDescription
PushConstantsLayout<DirectX12PushConstantsRange>Describes the layout of the pipelines push constant ranges.

Type Aliases

Member Functions

NameDescription
DirectX12PushConstantsLayout [constructor]Initializes a new push constants layout.
~DirectX12PushConstantsLayout [destructor] [virtual]Destructor
operator= Assignment operators
ranges [virtual]Returns all push constant ranges.
size [virtual]Returns the size (in bytes) of the push constants backing memory.

Protected Member Functions

NameDescription
operator= Assignment operators
ranges Returns an array of pointers to the push constant ranges of the layout.

Friends

NameDescription
LiteFX::Rendering::Backends::DirectX12PipelineLayoutImplements a DirectX 12 PipelineLayout.
LiteFX::Rendering::Backends::DirectX12PushConstantsLayoutBuilderBuilds a DirectX 12 PushConstantsLayout for a pipeline layout.
LiteFX::Rendering::Backends::DirectX12PushConstantsLayout::DirectX12PushConstantsLayoutImpl
LiteFX::PimplPtrA smart pointer that manages an implementation instance for a public interface class.

See Also

DirectX12PushConstantsRange

DirectX12PipelinePushConstantsLayoutBuilder