47 static constexpr uint32_t kSerializedDataMagic = 0x43535046;
48 static constexpr uint32_t kSerializedDataVersion = 1;
66 RHIDevicePipelineType
type{ RHIDevicePipelineType::Graphics };
159 .srcAlphaBlendFactor =
One,
170 .dstColorBlendFactor =
One,
171 .srcAlphaBlendFactor =
One,
172 .dstAlphaBlendFactor =
One,
#define ENUM_NAME_CONV_BEGIN(T)
Defines convince to_string() method and format_as() [fmt] for the respective enum class Example usage...
Definition Enums.hpp:82
#define ENUM_NAME(E)
Definition Enums.hpp:93
Definition Device.hpp:246
Base class for all RHI objects.
Definition Details.hpp:17
Definition PipelineState.hpp:43
virtual size_t GetSerializedDataSize() const =0
RHIPipelineStateCache(RHIDevice const &device, PipelineStateCacheDesc const &)
Definition PipelineState.hpp:53
virtual void DebugSetObjectName(const char *name)=0
virtual RHIPipelineStateCacheImportStatus GetImportStatus() const =0
virtual size_t WriteSerializedData(Span< unsigned char > dstBuffer) const =0
const RHIDevice & mDevice
Definition PipelineState.hpp:45
Definition PipelineState.hpp:60
const RHIDevice & mDevice
Definition PipelineState.hpp:62
RHIPipelineState(RHIDevice const &device, PipelineStateDesc const &desc)
Definition PipelineState.hpp:217
const PipelineStateDesc mDesc
Definition PipelineState.hpp:215
virtual void DebugSetObjectName(const char *name)=0
std::span< T > Span
Alias for std::span
Definition Container.hpp:62
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:3
RHIPipelineStateCacheImportStatus
Definition PipelineState.hpp:23
@ IncompatibleEngineVersion
RHIPipelineStateCacheBackend
Definition PipelineState.hpp:8
RHIResourceFormat
Definition Common.hpp:34
RHIMultisampleCount
Definition Common.hpp:273
Definition PipelineState.hpp:18
Definition PipelineState.hpp:50
Definition PipelineState.hpp:134
static const Blending GetAdditiveBlending()
Definition PipelineState.hpp:165
BlendFactor
Definition PipelineState.hpp:136
@ OneMinusSrcColor
Definition PipelineState.hpp:140
@ SrcColor
Definition PipelineState.hpp:139
@ SrcAlpha
Definition PipelineState.hpp:143
@ DstColor
Definition PipelineState.hpp:141
@ OneMinusDstColor
Definition PipelineState.hpp:142
@ OneMinusSrcAlpha
Definition PipelineState.hpp:144
@ Zero
Definition PipelineState.hpp:137
@ One
Definition PipelineState.hpp:138
@ OneMinusDstAlpha
Definition PipelineState.hpp:146
@ DstAlpha
Definition PipelineState.hpp:145
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendFactor dstAlphaBlendFactor
bool enabled
Definition PipelineState.hpp:135
static const Blending GetAlphaBlending()
Definition PipelineState.hpp:154
static const Blending GetNoBlending()
Definition PipelineState.hpp:153
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendFactor dstColorBlendFactor
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendFactor srcAlphaBlendFactor
BlendOp
Definition PipelineState.hpp:148
@ Add
Definition PipelineState.hpp:149
@ ReverseSubtract
Definition PipelineState.hpp:151
@ Subtract
Definition PipelineState.hpp:150
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendOp colorBlendOp
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendFactor srcColorBlendFactor
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendOp alphaBlendOp
Definition PipelineState.hpp:178
RHIResourceFormat format
Definition PipelineState.hpp:179
Definition PipelineState.hpp:133
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::RenderTarget renderTarget
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending blending
Definition PipelineState.hpp:117
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::DepthStencil::CompareOp Greater
CompareOp
Definition PipelineState.hpp:122
@ Greater
Definition PipelineState.hpp:127
@ GreaterEqual
Definition PipelineState.hpp:129
@ Less
Definition PipelineState.hpp:124
@ Never
Definition PipelineState.hpp:123
@ NotEqual
Definition PipelineState.hpp:128
@ Equal
Definition PipelineState.hpp:125
@ Always
Definition PipelineState.hpp:130
@ LessEqual
Definition PipelineState.hpp:126
bool depthTest
Definition PipelineState.hpp:120
bool depthWrite
Definition PipelineState.hpp:121
RHIResourceFormat stencilFormat
Definition PipelineState.hpp:119
RHIResourceFormat depthFormat
Definition PipelineState.hpp:118
Definition PipelineState.hpp:112
RHIMultisampleCount sampleCount
Definition PipelineState.hpp:114
bool enabled
Definition PipelineState.hpp:113
Definition PipelineState.hpp:208
size_t offset
Definition PipelineState.hpp:210
size_t size
Definition PipelineState.hpp:211
RHIShaderStage stage
Definition PipelineState.hpp:209
Definition PipelineState.hpp:93
float depthBias
Definition PipelineState.hpp:108
CullMode
Definition PipelineState.hpp:98
@ CullNone
Definition PipelineState.hpp:99
@ CullFront
Definition PipelineState.hpp:100
float lineFillWidth
Definition PipelineState.hpp:109
FillMode
Definition PipelineState.hpp:94
@ FillWireframe
Definition PipelineState.hpp:95
bool enableDepthBias
Definition PipelineState.hpp:107
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Rasterizer::FrontFace FFCounterClockwise
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Rasterizer::FillMode FillSolid
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Rasterizer::CullMode CullBack
FrontFace
Definition PipelineState.hpp:103
@ FFClockwise
Definition PipelineState.hpp:105
@ FFCounterClockwise
Definition PipelineState.hpp:104
Definition PipelineState.hpp:89
int32_t x
Definition PipelineState.hpp:90
int32_t width
Definition PipelineState.hpp:90
int32_t height
Definition PipelineState.hpp:90
int32_t y
Definition PipelineState.hpp:90
Definition PipelineState.hpp:191
const char * entryPoint
Definition PipelineState.hpp:195
const uint32_t raytracingHitGroupIndex
Definition PipelineState.hpp:199
RHIShaderStage stage
Definition PipelineState.hpp:194
RayTracingHitGroupType raytracingHitGroupType
Definition PipelineState.hpp:200
Span< const char > specializationData
Definition PipelineState.hpp:197
Definition PipelineState.hpp:190
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::ShaderStage::StageDesc desc
RHIShaderModule * shaderModule
Definition PipelineState.hpp:202
Definition PipelineState.hpp:84
float height
Definition PipelineState.hpp:85
float width
Definition PipelineState.hpp:85
float minDepth
Definition PipelineState.hpp:86
float x
Definition PipelineState.hpp:85
float y
Definition PipelineState.hpp:85
float maxDepth
Definition PipelineState.hpp:86
Definition PipelineState.hpp:64
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Viewport viewport
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::DepthStencil depthStencil
Span< RHIDeviceDescriptorSetLayout *const > descriptorSetLayouts
Definition PipelineState.hpp:206
Span< const Attachment > attachments
Definition PipelineState.hpp:183
Span< const ShaderStage > shaderStages
Definition PipelineState.hpp:204
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::VertexInput vertexInput
Span< const PushConstant > pushConstants
Definition PipelineState.hpp:213
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Rasterizer rasterizer
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Scissor scissor
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Multisample multisample
RHIPipelineStateCache * psoCache
Definition PipelineState.hpp:65
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Topology TriangleList
Topology
Definition PipelineState.hpp:77
@ LineList
Definition PipelineState.hpp:78
@ TriangleStrip
Definition PipelineState.hpp:81
@ PointList
Definition PipelineState.hpp:79
@ TriangleList
Definition PipelineState.hpp:80
RHIDevicePipelineType type
Definition PipelineState.hpp:66
RayTracingHitGroupType
Definition PipelineState.hpp:186