# 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.

  `conditionalRendering`

    A `ConditionalRendering` describing the current conditional rendering state.

  `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.

  `transformFeedback`

    A `VKTransformFeedback` 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.

  `chromaFilter`

    For ycbcr samplers - the `FilterMode` describing the chroma filtering mode.

  `compareFunction`

    For samplers - the `CompareFunction` for comparison samplers.

  `dynamicallyUsed`

    `True` if this binding element is dynamically used.

    If set to `False` this means that the binding was available to the shader but during execution it was not referenced. The data gathered for setting this variable is conservative, meaning that only accesses through arrays will have this calculated to reduce the required feedback bandwidth - single non-arrayed descriptors may have this value set to `True` even if the shader did not use them, since single descriptors may only be dynamically skipped by control flow.

  `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.

  `forceExplicitReconstruction`

    For ycbcr samplers - `True` if explicit reconstruction is force enabled.

  `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`

    A `TextureSwizzle4` 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.

  `xChromaOffset`

    For ycbcr samplers - the `ChromaSampleLocation` X-axis chroma offset.

  `yChromaOffset`

    For ycbcr samplers - the `ChromaSampleLocation` Y-axis chroma offset.

  `ycbcrModel`

    For ycbcr samplers - the `YcbcrConversion` used for conversion.

  `ycbcrRange`

    For ycbcr samplers - the `YcbcrRange` used for conversion.

  `ycbcrSampler`

    For samplers - the `ResourceId` of the ycbcr conversion object associated with this sampler.

  `ycbcrSwizzle`

    For ycbcr samplers - A `TextureSwizzle4` indicating the swizzle applied before conversion.

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`.

  `dynamicallyUsedCount`

    Lists how many bindings in `binds` are dynamically used. Useful to avoid redundant iteration to determine whether any bindings are present.

    For more information see `VKBindingElement.dynamicallyUsed`.

  `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.``VKXFBBuffer`

  Describes a single transform feedback binding.

  `active`

    A flag indicating if this buffer is active or not.

  `bufferResourceId`

    The `ResourceId` of the bound data buffer.

  `byteOffset`

    The offset in bytes to the start of the data in the `bufferResourceId`.

  `byteSize`

    The size in bytes of the data buffer.

  `counterBufferOffset`

    The offset in bytes to the counter in the `counterBufferResourceId`.

  `counterBufferResourceId`

    The `ResourceId` of the buffer storing the counter value (if set).

class `renderdoc.``VKTransformFeedback`

  Describes the state of the fixed-function transform feedback.

  `buffers`

    The bound transform feedback buffers.

class `renderdoc.``VKRenderArea`

  Describes a render area in the current framebuffer.

  `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.``VKViewportScissor`

  Describes a combined viewport and scissor region.

  `scissor`

    The `Scissor`.

  `vp`

    The `Viewport`.

class `renderdoc.``VKViewState`

  Describes the view state in the pipeline.

  `discardRectangles`

    A list of `VKRenderArea` defining discard rectangles.

  `discardRectanglesExclusive`

    `True` if a fragment in any one of the discard rectangles fails the discard test, and a fragment in none of them passes.

    `False` if a fragment in any one of the discard rectangles passes the discard test, and a fragment in none of them is discarded.

    Note

    A `True` value and an empty list of `discardRectangles` means the test is effectively disabled, since with no rectangles no fragment can be inside one.

  `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`.

  `depthClipEnable`

    `True` if pixels outside of the near and far depth planes should be clipped.

    Note

    In Vulkan 1.0 this value was implicitly set to the opposite of `depthClampEnable`, but with later extensions & versions it can be set independently.

  `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.

  `lineRasterMode`

    The line rasterization mode.

  `lineStippleFactor`

    The line stipple factor, or 0 if line stipple is disabled.

  `lineStipplePattern`

    The line stipple bit-pattern.

  `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.``VKSampleLocations`

  Describes state of custom sample locations in the pipeline.

  `customLocations`

    A list of `FloatVector` giving the custom sample locations. Only x and y are valid, z and w are set to 0.0.

    If the list is empty then the standard sample pattern is in use.

  `gridHeight`

    The height in pixels of the region configured.

  `gridWidth`

    The width in pixels of the region configured.

class `renderdoc.``VKMultiSample`

  Describes the multisampling state in the pipeline.

  `minSampleShading`

    The minimum sample shading rate.

  `rasterSamples`

    How many samples to use when rasterizing.

  `sampleLocations`

    The `VKSampleLocations` with any custom sample locations that are configured.

  `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`.

  `fragmentDensityAttachment`

    An index into the framebuffer attachments for the fragment density attachment.

    If there is no fragment density 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`

    A `TextureSwizzle4` 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.``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.

class `renderdoc.``VKConditionalRendering`

  Contains the current conditional rendering state.

  `bufferId`

    The `ResourceId` of the buffer containing the predicate for conditional rendering.

  `byteOffset`

    The byte offset into buffer where the predicate is located.

  `isInverted`

    `True` if predicate result is inverted.

  `isPassing`

    `True` if the current predicate would render.