121 .srcAlphaBlendFactor =
One,
132 .dstColorBlendFactor =
One,
133 .srcAlphaBlendFactor =
One,
134 .dstAlphaBlendFactor =
One,
Definition Device.hpp:188
Base class for all RHI objects.
Definition Details.hpp:16
Definition PipelineState.hpp:8
const PipelineStateCacheDesc mDesc
Definition PipelineState.hpp:16
virtual void DebugSetObjectName(const char *name)=0
virtual size_t GetCachedData(void *dstBuffer=nullptr) const =0
RHIPipelineStateCache(RHIDevice const &device, PipelineStateCacheDesc const &desc)
Definition PipelineState.hpp:17
const RHIDevice & mDevice
Definition PipelineState.hpp:10
Definition PipelineState.hpp:22
const RHIDevice & mDevice
Definition PipelineState.hpp:24
RHIPipelineState(RHIDevice const &device, PipelineStateDesc const &desc)
Definition PipelineState.hpp:171
const PipelineStateDesc mDesc
Definition PipelineState.hpp:169
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:149
std::span< T > Span
Alias for std::span
Definition Container.hpp:60
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:4
RHIResourceFormat
Definition Common.hpp:20
RHIMultisampleCount
Definition Common.hpp:189
Definition PipelineState.hpp:13
Span< const char > initialData
Definition PipelineState.hpp:14
Definition PipelineState.hpp:96
static const Blending GetAdditiveBlending()
Definition PipelineState.hpp:127
BlendFactor
Definition PipelineState.hpp:98
@ OneMinusSrcColor
Definition PipelineState.hpp:102
@ SrcColor
Definition PipelineState.hpp:101
@ SrcAlpha
Definition PipelineState.hpp:105
@ DstColor
Definition PipelineState.hpp:103
@ OneMinusDstColor
Definition PipelineState.hpp:104
@ OneMinusSrcAlpha
Definition PipelineState.hpp:106
@ Zero
Definition PipelineState.hpp:99
@ One
Definition PipelineState.hpp:100
@ OneMinusDstAlpha
Definition PipelineState.hpp:108
@ DstAlpha
Definition PipelineState.hpp:107
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendFactor dstAlphaBlendFactor
bool enabled
Definition PipelineState.hpp:97
static const Blending GetAlphaBlending()
Definition PipelineState.hpp:116
static const Blending GetNoBlending()
Definition PipelineState.hpp:115
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendFactor dstColorBlendFactor
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending::BlendFactor srcAlphaBlendFactor
BlendOp
Definition PipelineState.hpp:110
@ Add
Definition PipelineState.hpp:111
@ ReverseSubtract
Definition PipelineState.hpp:113
@ Subtract
Definition PipelineState.hpp:112
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:140
RHIResourceFormat format
Definition PipelineState.hpp:141
Definition PipelineState.hpp:95
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::RenderTarget renderTarget
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Attachment::Blending blending
Definition PipelineState.hpp:79
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::DepthStencil::CompareOp Greater
CompareOp
Definition PipelineState.hpp:84
@ Greater
Definition PipelineState.hpp:89
@ GreaterEqual
Definition PipelineState.hpp:91
@ Less
Definition PipelineState.hpp:86
@ Never
Definition PipelineState.hpp:85
@ NotEqual
Definition PipelineState.hpp:90
@ Equal
Definition PipelineState.hpp:87
@ Always
Definition PipelineState.hpp:92
@ LessEqual
Definition PipelineState.hpp:88
bool depthTest
Definition PipelineState.hpp:82
bool depthWrite
Definition PipelineState.hpp:83
RHIResourceFormat stencilFormat
Definition PipelineState.hpp:81
RHIResourceFormat depthFormat
Definition PipelineState.hpp:80
Definition PipelineState.hpp:74
RHIMultisampleCount sampleCount
Definition PipelineState.hpp:76
bool enabled
Definition PipelineState.hpp:75
Definition PipelineState.hpp:162
size_t offset
Definition PipelineState.hpp:164
size_t size
Definition PipelineState.hpp:165
RHIShaderStage stage
Definition PipelineState.hpp:163
Definition PipelineState.hpp:55
float depthBias
Definition PipelineState.hpp:70
CullMode
Definition PipelineState.hpp:60
@ CullNone
Definition PipelineState.hpp:61
@ CullFront
Definition PipelineState.hpp:62
float lineFillWidth
Definition PipelineState.hpp:71
FillMode
Definition PipelineState.hpp:56
@ FillWireframe
Definition PipelineState.hpp:57
bool enableDepthBias
Definition PipelineState.hpp:69
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:65
@ FFClockwise
Definition PipelineState.hpp:67
@ FFCounterClockwise
Definition PipelineState.hpp:66
Definition PipelineState.hpp:51
int32_t x
Definition PipelineState.hpp:52
int32_t width
Definition PipelineState.hpp:52
int32_t height
Definition PipelineState.hpp:52
int32_t y
Definition PipelineState.hpp:52
Definition PipelineState.hpp:148
const char * entryPoint
Definition PipelineState.hpp:152
RHIShaderStage stage
Definition PipelineState.hpp:151
Span< const char > specializationData
Definition PipelineState.hpp:154
Definition PipelineState.hpp:147
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::ShaderStage::StageDesc desc
RHIShaderModule * shaderModule
Definition PipelineState.hpp:156
Definition PipelineState.hpp:46
float height
Definition PipelineState.hpp:47
float width
Definition PipelineState.hpp:47
float minDepth
Definition PipelineState.hpp:48
float x
Definition PipelineState.hpp:47
float y
Definition PipelineState.hpp:47
float maxDepth
Definition PipelineState.hpp:48
Definition PipelineState.hpp:26
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::Viewport viewport
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::DepthStencil depthStencil
Span< RHIDeviceDescriptorSetLayout *const > descriptorSetLayouts
Definition PipelineState.hpp:160
Span< const Attachment > attachments
Definition PipelineState.hpp:145
Span< const ShaderStage > shaderStages
Definition PipelineState.hpp:158
struct Foundation::RHI::RHIPipelineState::PipelineStateDesc::VertexInput vertexInput
Span< const PushConstant > pushConstants
Definition PipelineState.hpp:167
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:27
enum Foundation::RHI::RHIPipelineState::PipelineStateDesc::Topology TriangleList
Topology
Definition PipelineState.hpp:39
@ LineList
Definition PipelineState.hpp:40
@ TriangleStrip
Definition PipelineState.hpp:43
@ PointList
Definition PipelineState.hpp:41
@ TriangleList
Definition PipelineState.hpp:42
RHIDevicePipelineType type
Definition PipelineState.hpp:28