basePipelineCreateInfo :: PipelineLayout-> Maybe RenderPass-> IntColour attachment count (blend attachments);
0for depth-only.-> BoolWhether a depth attachment is present.
-> PipelineVertexInputStateCreateInfo '[]Vertex input (bindings + attributes);
zerofor none.-> Vector DynamicState-> Vector (SomeStruct PipelineShaderStageCreateInfo)-> GraphicsPipelineCreateInfo '[]
The shared body of the vanilla graphics pipeline: the given dynamicStates,
colorAttachmentCount identical non-blended color attachments, an optional
depth-stencil state, and empty vertex input. The static values left in the
create-info (cull mode, topology, …) are the baked defaults for any state not
listed dynamic; states that are listed dynamic ignore them, so callers MUST emit
the matching cmdSet* before drawing.
The colour and depth shape MUST match the attachments the pipeline renders to —
the render pass (render-pass path) or the PipelineRenderingCreateInfo formats
(dynamic-rendering path):
colorAttachmentCount == 0omitscolorBlendStateentirely (a depth-only pipeline); otherwise one RGBA, non-blended attachment per colour target.depthadds a zeroeddepthStencilState— present (non-NULL) is required whenever a depth attachment is used; the actual test config is dynamic, so a zeroed struct is correct.
Pass Just the target render pass (render-pass path), or Nothing and attach
a PipelineRenderingCreateInfo to the returned struct's pNext chain
(dynamic-rendering path).