# Vulkan Pipeline State

class `renderdoc.``VKState`

  The full current Vulkan pipeline state.

  `colorBlend`

    A `VKColorBlendState` describing color blending.

  `compute`

    A `VKPipeline` with the currently bound compute pipeline, if any.

  `computeShader`

    A `VKShader` describing the compute shader stage.

  `currentPass`

    A `VKCurrentPass` describing the current renderpass, subpass and framebuffer.

  `depthStencil`

    A `VKDepthStencil` describing the depth-stencil stage.

  `fragmentShader`

    A `VKShader` describing the fragment shader stage.

  `geometryShader`

    A `VKShader` describing the geometry shader stage.

  `graphics`

    A `VKPipeline` with the currently bound graphics pipeline, if any.

  `images`

    A list of `VKImageData` entries, one for each image.

  `inputAssembly`

    A `VKInputAssembly` describing the input assembly stage.

  `multisample`

    A `VKMultiSample` describing the multisample setup.

  `pushconsts`

    A `bytes` containing the raw push constant data.

  `rasterizer`

    A `VKRasterizer` describing rasterization.

  `tessControlShader`

    A `VKShader` describing the tessellation control shader stage.

  `tessEvalShader`

    A `VKShader` describing the tessellation evaluation shader stage.

  `tessellation`

    A `VKTessellation` describing the tessellation stage.

  `vertexInput`

    A `VKVertexInput` describing the vertex input stage.

  `vertexShader`

    A `VKShader` describing the vertex shader stage.

  `viewportScissor`

    A `VKViewState` describing the viewport setup.

class `renderdoc.``VKBindingElement`

  The contents of a single binding element within a descriptor set, possibly in an array.

  `UseBorder`()

    For samplers - check if the border color is used in this Vulkan sampler.

    Returns: | `True` if the border color is used, `False` otherwise.
    Return type: | `bool`

  `addressU`

    For samplers - the `AddressMode` in the U direction.

  `addressV`

    For samplers - the `AddressMode` in the V direction.

  `addressW`

    For samplers - the `AddressMode` in the W direction.

  `borderColor`

    For samplers - the RGBA border color.

  `byteOffset`

    For buffers - the byte offset where the buffer view starts in the underlying buffer.

  `byteSize`

    For buffers - how many bytes are in this buffer view.

  `compareFunction`

    For samplers - the `CompareFunction` for comparison samplers.

  `filter`

    For samplers - the `TextureFilter` describing the filtering mode.

  `firstMip`

    For textures - the first mip level used in the view.

  `firstSlice`

    For 3D textures and texture arrays - the first slice used in the view.

  `immutableSampler`

    `True` if this is an immutable sampler binding.

  `maxAnisotropy`

    For samplers - the maximum anisotropic filtering level to use.

  `maxLOD`

    For samplers - the maximum mip level that can be used.

  `minLOD`

    For samplers - the minimum mip level that can be used.

  `mipBias`

    For samplers - a bias to apply to the calculated mip level before sampling.

  `numMips`

    For textures - the number of mip levels in the view.

  `numSlices`

    For 3D textures and texture arrays - the number of array slices in the view.

  `resourceResourceId`

    The `ResourceId` of the current underlying buffer or image object.

  `samplerResourceId`

    The `ResourceId` of the current sampler object.

  `swizzle`

    Four `TextureSwizzle` elements indicating the swizzle applied to this texture.

  `unnormalized`

    For samplers - `True` if unnormalized co-ordinates are used in this sampler.

  `viewFormat`

    The `ResourceFormat` that the view uses.

  `viewResourceId`

    The `ResourceId` of the current view object, if one is in use.

class `renderdoc.``VKDescriptorBinding`

  The contents of a single binding within a descriptor set, either arrayed or not.

  `binds`

    A list of `VKBindingElement` with the binding elements. If `descriptorCount` is 1 then this isn’t an array, and this list has only one element.

  `descriptorCount`

    How many descriptors are in this binding array. If this binding is empty/non-existant this value will be `0`.

  `stageFlags`

    The `ShaderStageMask` where this binding is visible.

  `type`

    The `BindType` of this binding.

class `renderdoc.``VKDescriptorSet`

  The contents of a descriptor set.

  `bindings`

    A list of `VKDescriptorBinding` with the bindings within this set. This list is indexed by the binding, so it may be sparse (some entries do not contain any elements).

  `descriptorSetResourceId`

    The `ResourceId` of the descriptor set object.

  `layoutResourceId`

    The `ResourceId` of the descriptor set layout that matches this set.

  `pushDescriptor`

    Indicates if this is a virtual ‘push’ descriptor set.

class `renderdoc.``VKPipeline`

  Describes the object and descriptor set bindings of a Vulkan pipeline object.

  `descriptorSets`

    A list of `VKDescriptorSet` with the bound descriptor sets.

  `flags`

    The flags used to create the pipeline object.

  `pipelineLayoutResourceId`

    The `ResourceId` of the pipeline layout object.

  `pipelineResourceId`

    The `ResourceId` of the pipeline object.

class `renderdoc.``VKIndexBuffer`

  Describes the Vulkan index buffer binding.

  `byteOffset`

    The byte offset from the start of the buffer to the beginning of the index data.

  `resourceId`

    The `ResourceId` of the index buffer.

class `renderdoc.``VKInputAssembly`

  Describes the vulkan input assembly configuration.

  `indexBuffer`

    The `VKIndexBuffer` with the index buffer binding.

  `primitiveRestartEnable`

    `True` if primitive restart is enabled for strip primitives.

class `renderdoc.``VKVertexAttribute`

  Describes the configuration of a single vertex attribute.

  `binding`

    The vertex binding where data will be sourced from.

  `byteOffset`

    The byte offset from the start of each vertex data in the `binding` to this attribute.

  `format`

    The `ResourceFormat` describing how each input element will be interpreted.

  `location`

    The location in the shader that is bound to this attribute.

class `renderdoc.``VKVertexBinding`

  Describes a vertex binding.

  `byteStride`

    The byte stride between the start of one set of vertex data and the next.

  `instanceDivisor`

    The instance rate divisor.

    If this is `0` then every vertex gets the same value.

    If it’s `1` then one element is read for each instance, and for `N` greater than `1` then `N` instances read the same element before advancing.

  `perInstance`

    `True` if the vertex data is instance-rate.

  `vertexBufferBinding`

    The vertex binding where data will be sourced from.

class `renderdoc.``VKVertexBuffer`

  Describes a single Vulkan vertex buffer binding.

  `byteOffset`

    The byte offset from the start of the buffer to the beginning of the vertex data.

  `resourceId`

    The `ResourceId` of the buffer bound to this slot.

class `renderdoc.``VKVertexInput`

  Describes the fixed-function vertex input fetch setup.

  `attributes`

    A list of `VKVertexAttribute` with the vertex attributes.

  `bindings`

    A list of `VKVertexBinding` with the vertex bindings.

  `vertexBuffers`

    A list of `VKVertexBuffer` with the vertex buffers.

class `renderdoc.``VKSpecializationConstant`

  The provided value for a specialization constant.

  `data`

    A `bytes` with the contents of the constant.

  `specializationId`

    The specialization ID

class `renderdoc.``VKShader`

  Describes a Vulkan shader stage.

  `bindpointMapping`

    A `ShaderBindpointMapping` to match `reflection` with the bindpoint mapping data.

  `entryPoint`

    The name of the entry point in the shader module that is used.

  `reflection`

    A `ShaderReflection` describing the reflection data for this shader.

  `resourceId`

    The `ResourceId` of the shader module object.

  `specialization`

    A list of `VKSpecializationConstant` with the provided specialization constants.

  `stage`

    A `ShaderStage` identifying which stage this shader is bound to.

class `renderdoc.``VKTessellation`

  Describes the state of the fixed-function tessellator.

  `domainOriginUpperLeft`

    `True` if the tessellation domain origin is upper-left, `False` if lower-left.

  `numControlPoints`

    The number of control points in each input patch.

class `renderdoc.``VKViewportScissor`

  Describes a combined viewport and scissor region.

  `scissor`

    The `Scissor`.

  `vp`

    The `Viewport`.

class `renderdoc.``VKViewState`

  Describes the view state in the pipeline.

  `viewportScissors`

    A list of `VKViewportScissor`.

class `renderdoc.``VKRasterizer`

  Describes the rasterizer state in the pipeline.

  `conservativeRasterization`

    The active conservative rasterization mode.

  `cullMode`

    The polygon `CullMode`.

  `depthBias`

    The fixed depth bias value to apply to z-values.

  `depthBiasClamp`

    The clamp value for calculated depth bias from `depthBias` and `slopeScaledDepthBias`

  `depthClampEnable`

    `True` if pixels outside of the near and far depth planes should be clamped and to `0.0` to `1.0` and not clipped.

  `extraPrimitiveOverestimationSize`

    The extra size in pixels to increase primitives by during conservative rasterization, in the x and y directions in screen space.

    See `conservativeRasterizationMode`

  `fillMode`

    The polygon `FillMode`.

  `frontCCW`

    `True` if counter-clockwise polygons are front-facing. `False` if clockwise polygons are front-facing.

  `lineWidth`

    The fixed line width in pixels.

  `rasterizerDiscardEnable`

    `True` if primitives should be discarded during rasterization.

  `slopeScaledDepthBias`

    The slope-scaled depth bias value to apply to z-values.

class `renderdoc.``VKMultiSample`

  Describes the multisampling state in the pipeline.

  `minSampleShading`

    The minimum sample shading rate.

  `rasterSamples`

    How many samples to use when rasterizing.

  `sampleMask`

    A mask that generated samples should be masked with using bitwise `AND`.

  `sampleShadingEnable`

    `True` if rendering should happen at sample-rate frequency.

class `renderdoc.``VKColorBlendState`

  Describes the pipeline blending state.

  `alphaToCoverageEnable`

    `True` if alpha-to-coverage should be used when blending to an MSAA target.

  `alphaToOneEnable`

    `True` if alpha-to-one should be used when blending to an MSAA target.

  `blendFactor`

    The constant blend factor to use in blend equations.

  `blends`

    The list of `ColorBlend` with the blending configuration per-attachment.

class `renderdoc.``VKDepthStencil`

  Describes the pipeline depth-stencil state.

  `backFace`

    A `StencilFace` describing what happens for back-facing polygons.

  `depthBoundsEnable`

    `True` if depth bounds tests should be applied.

  `depthFunction`

    The `CompareFunction` to use for testing depth values.

  `depthTestEnable`

    `True` if depth testing should be performed.

  `depthWriteEnable`

    `True` if depth values should be written to the depth target.

  `frontFace`

    A `StencilFace` describing what happens for front-facing polygons.

  `maxDepthBounds`

    The far plane bounding value.

  `minDepthBounds`

    The near plane bounding value.

  `stencilTestEnable`

    `True` if stencil operations should be performed.

class `renderdoc.``VKRenderPass`

  Describes the setup of a renderpass and subpasses.

  `colorAttachments`

    A list of indices into the framebuffer attachments for color attachments.

  `depthstencilAttachment`

    An index into the framebuffer attachments for the depth-stencil attachment.

    If there is no depth-stencil attachment, this index is `-1`.

  `inputAttachments`

    A list of indices into the framebuffer attachments for input attachments.

  `multiviews`

    If multiview is enabled, contains a list of view indices to be broadcast to during rendering.

    If the list is empty, multiview is disabled and rendering is as normal.

  `resolveAttachments`

    A list of indices into the framebuffer attachments for resolve attachments.

  `resourceId`

    The `ResourceId` of the render pass.

  `subpass`

    The index of the current active subpass.

class `renderdoc.``VKAttachment`

  Describes a single attachment in a framebuffer object.

  `firstMip`

    The first mip level used in the attachment.

  `firstSlice`

    For 3D textures and texture arrays, the first slice used in the attachment.

  `imageResourceId`

    The `ResourceId` of the underlying image that the view refers to.

  `numMips`

    The number of mip levels in the attachment.

  `numSlices`

    For 3D textures and texture arrays, the number of array slices in the attachment.

  `swizzle`

    Four `TextureSwizzle` elements indicating the swizzle applied to this texture.

  `viewFormat`

    The `ResourceFormat` that the view uses.

  `viewResourceId`

    The `ResourceId` of the image view itself.

class `renderdoc.``VKFramebuffer`

  Describes a framebuffer object and its attachments.

  `attachments`

    A list of `VKAttachment` with the attachments of this framebuffer.

  `height`

    The height of this framebuffer in pixels.

  `layers`

    The number of layers in this framebuffer.

  `resourceId`

    The `ResourceId` of the framebuffer object.

  `width`

    The width of this framebuffer in pixels.

class `renderdoc.``VKRenderArea`

  Describes the render area for a render pass instance.

  `height`

    The height of the render area.

  `width`

    The width of the render area.

  `x`

    The X co-ordinate of the render area.

  `y`

    The Y co-ordinate of the render area.

class `renderdoc.``VKCurrentPass`

  Describes the current pass instance at the current time.

  `framebuffer`

    The `VKFramebuffer` that is currently being used.

  `renderArea`

    The `VKRenderArea` that is currently being rendered to.

  `renderpass`

    The `VKRenderPass` that is currently active.

class `renderdoc.``VKImageLayout`

  Contains the layout of a range of subresources in an image.

  `baseLayer`

    For 3D textures and texture arrays, the first slice used in the range.

  `baseMip`

    The first mip level used in the range.

  `name`

    The name of the current image state.

  `numLayer`

    For 3D textures and texture arrays, the number of array slices in the range.

  `numMip`

    The number of mip levels in the range.

class `renderdoc.``VKImageData`

  Contains the current layout of all subresources in the image.

  `layouts`

    A list of `VKImageLayout` with the set of subresources that make up the image.

  `resourceId`

    The `ResourceId` of the image.