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¶
| Name | Description |
|---|---|
PushConstantsLayout<DirectX12PushConstantsRange> | Describes the layout of the pipelines push constant ranges. |
Type Aliases¶
Member Functions¶
| Name | Description |
|---|---|
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¶
| Name | Description |
|---|---|
operator= | Assignment operators |
ranges | Returns an array of pointers to the push constant ranges of the layout. |
Friends¶
| Name | Description |
|---|---|
LiteFX::Rendering::Backends::DirectX12PipelineLayout | Implements a DirectX 12 PipelineLayout. |
LiteFX::Rendering::Backends::DirectX12PushConstantsLayoutBuilder | Builds a DirectX 12 PushConstantsLayout for a pipeline layout. |
LiteFX::Rendering::Backends::DirectX12PushConstantsLayout::DirectX12PushConstantsLayoutImpl | |
LiteFX::PimplPtr | A smart pointer that manages an implementation instance for a public interface class. |
See Also¶
DirectX12PushConstantsRange
DirectX12PipelinePushConstantsLayoutBuilder