144 .srcAlphaBlendFactor =
One,
155 .dstColorBlendFactor =
One,
156 .srcAlphaBlendFactor =
One,
157 .dstAlphaBlendFactor =
One,
Definition Device.hpp:245
Base class for all RHI objects.
Definition Details.hpp:16
Definition PipelineState.hpp:28
static constexpr uint32_t kSerializedDataMagic
Definition PipelineState.hpp:32
virtual size_t GetSerializedDataSize() const =0
RHIPipelineStateCache(RHIDevice const &device, PipelineStateCacheDesc const &)
Definition PipelineState.hpp:38
virtual void DebugSetObjectName(const char *name)=0
virtual RHIPipelineStateCacheImportStatus GetImportStatus() const =0
virtual size_t WriteSerializedData(Span< unsigned char > dstBuffer) const =0
static constexpr uint32_t kSerializedDataVersion
Definition PipelineState.hpp:33
const RHIDevice & mDevice
Definition PipelineState.hpp:30
Definition PipelineState.hpp:45
const RHIDevice & mDevice
Definition PipelineState.hpp:47
RHIPipelineState(RHIDevice const &device, PipelineStateDesc const &desc)
Definition PipelineState.hpp:202
const PipelineStateDesc mDesc
Definition PipelineState.hpp:200
virtual void DebugSetObjectName(const char *name)=0
T * Construct(Allocator *resource, Args &&...args)
Convenience placement new with object of type T using a Foundation::Core::Allocator.
Definition Allocator.hpp:153
std::span< T > Span
Alias for std::span
Definition Container.hpp:60
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:4
RHIPipelineStateCacheImportStatus
Definition PipelineState.hpp:18
@ IncompatibleEngineVersion
RHIPipelineStateCacheBackend
Definition PipelineState.hpp:8
RHIResourceFormat
Definition Common.hpp:34
RHIMultisampleCount
Definition Common.hpp:257
Definition PipelineState.hpp:13
uint64_t high
Definition PipelineState.hpp:14
uint64_t low
Definition PipelineState.hpp:15
Definition PipelineState.hpp:35
Span< const unsigned char > initialData
Definition PipelineState.hpp:36
Definition PipelineState.hpp:119
static const Blending GetAdditiveBlending()
Definition PipelineState.hpp:150
BlendFactor
Definition PipelineState.hpp:121
@ OneMinusSrcColor
Definition PipelineState.hpp:125
@ SrcColor
Definition PipelineState.hpp:124
@ SrcAlpha
Definition PipelineState.hpp:128
@ DstColor
Definition PipelineState.hpp:126
@ OneMinusDstColor
Definition PipelineState.hpp:127
@ OneMinusSrcAlpha
Definition PipelineState.hpp:129
@ Zero
Definition PipelineState.hpp:122
@ One
Definition PipelineState.hpp:123
@ OneMinusDstAlpha
Definition PipelineState.hpp:131
@ DstAlpha
Definition PipelineState.hpp:130
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendFactor dstAlphaBlendFactor
bool enabled
Definition PipelineState.hpp:120
static const Blending GetAlphaBlending()
Definition PipelineState.hpp:139
static const Blending GetNoBlending()
Definition PipelineState.hpp:138
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendFactor dstColorBlendFactor
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendFactor srcAlphaBlendFactor
BlendOp
Definition PipelineState.hpp:133
@ Add
Definition PipelineState.hpp:134
@ ReverseSubtract
Definition PipelineState.hpp:136
@ Subtract
Definition PipelineState.hpp:135
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:163
RHIResourceFormat format
Definition PipelineState.hpp:164
Definition PipelineState.hpp:118
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::RenderTarget renderTarget
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending blending
Definition PipelineState.hpp:102
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::DepthStencil::CompareOp Greater
CompareOp
Definition PipelineState.hpp:107
@ Greater
Definition PipelineState.hpp:112
@ GreaterEqual
Definition PipelineState.hpp:114
@ Less
Definition PipelineState.hpp:109
@ Never
Definition PipelineState.hpp:108
@ NotEqual
Definition PipelineState.hpp:113
@ Equal
Definition PipelineState.hpp:110
@ Always
Definition PipelineState.hpp:115
@ LessEqual
Definition PipelineState.hpp:111
bool depthTest
Definition PipelineState.hpp:105
bool depthWrite
Definition PipelineState.hpp:106
RHIResourceFormat stencilFormat
Definition PipelineState.hpp:104
RHIResourceFormat depthFormat
Definition PipelineState.hpp:103
Definition PipelineState.hpp:97
RHIMultisampleCount sampleCount
Definition PipelineState.hpp:99
bool enabled
Definition PipelineState.hpp:98
Definition PipelineState.hpp:193
size_t offset
Definition PipelineState.hpp:195
size_t size
Definition PipelineState.hpp:196
RHIShaderStage stage
Definition PipelineState.hpp:194
Definition PipelineState.hpp:78
float depthBias
Definition PipelineState.hpp:93
CullMode
Definition PipelineState.hpp:83
@ CullNone
Definition PipelineState.hpp:84
@ CullFront
Definition PipelineState.hpp:85
float lineFillWidth
Definition PipelineState.hpp:94
FillMode
Definition PipelineState.hpp:79
@ FillWireframe
Definition PipelineState.hpp:80
bool enableDepthBias
Definition PipelineState.hpp:92
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:88
@ FFClockwise
Definition PipelineState.hpp:90
@ FFCounterClockwise
Definition PipelineState.hpp:89
Definition PipelineState.hpp:74
int32_t x
Definition PipelineState.hpp:75
int32_t width
Definition PipelineState.hpp:75
int32_t height
Definition PipelineState.hpp:75
int32_t y
Definition PipelineState.hpp:75
Definition PipelineState.hpp:176
const char * entryPoint
Definition PipelineState.hpp:180
const uint32_t raytracingHitGroupIndex
Definition PipelineState.hpp:184
RHIShaderStage stage
Definition PipelineState.hpp:179
RayTracingHitGroupType raytracingHitGroupType
Definition PipelineState.hpp:185
Span< const char > specializationData
Definition PipelineState.hpp:182
Definition PipelineState.hpp:175
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::ShaderStage::StageDesc desc
RHIShaderModule * shaderModule
Definition PipelineState.hpp:187
Definition PipelineState.hpp:69
float height
Definition PipelineState.hpp:70
float width
Definition PipelineState.hpp:70
float minDepth
Definition PipelineState.hpp:71
float x
Definition PipelineState.hpp:70
float y
Definition PipelineState.hpp:70
float maxDepth
Definition PipelineState.hpp:71
Definition PipelineState.hpp:49
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Viewport viewport
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::DepthStencil depthStencil
Span< RHIDeviceDescriptorSetLayout *const > descriptorSetLayouts
Definition PipelineState.hpp:191
Span< const Attachment > attachments
Definition PipelineState.hpp:168
Span< const ShaderStage > shaderStages
Definition PipelineState.hpp:189
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::VertexInput vertexInput
Span< const PushConstant > pushConstants
Definition PipelineState.hpp:198
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:50
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Topology TriangleList
Topology
Definition PipelineState.hpp:62
@ LineList
Definition PipelineState.hpp:63
@ TriangleStrip
Definition PipelineState.hpp:66
@ PointList
Definition PipelineState.hpp:64
@ TriangleList
Definition PipelineState.hpp:65
RHIDevicePipelineType type
Definition PipelineState.hpp:51
RayTracingHitGroupType
Definition PipelineState.hpp:171