Resources

General

class renderdoc.ResourceId

This is an opaque identifier that uniquely locates a resource.

Note

These IDs do not overlap ever - textures, buffers, shaders and samplers will all have unique IDs and do not reuse the namespace. Likewise the IDs assigned for resources during capture are not re-used on replay - the corresponding resources created on replay to stand-in for capture-time resources are given unique IDs and a mapping is stored to between the capture-time resource and the replay-time one.

static Null()

A helper function that explicitly creates an empty/invalid/null ResourceId.

Returns

an empty/invalid/null ResourceId.

Return type

ResourceId

class renderdoc.ResourceDescription

A description of any type of resource.

SetCustomName(givenName)

Utility function for setting up a custom name to overwrite the auto-generated one.

Parameters

givenName# (str) – The custom name to use.

autogeneratedName

True if name was just autogenerated based on the ID, not assigned a human-readable name by the application.

derivedResources

The ResourceId of any derived resources, such as resource views or aliases.

Can be empty if there are no derived resources.

This is the inverse of parentResources in a potentially many:many relationship, but typically it is one parent to many derived.

Type

List[ResourceId]

initialisationChunks

The chunk indices in the structured file that initialised this resource.

This will at least contain the first call that created it, but may contain other auxilliary calls.

Type

List[int]

name

The name given to this resource.

parentResources

The ResourceId of parent resources, of which this is derived.

Can be empty if there are no parent resources.

This is the inverse of derivedResources in a potentially many:many relationship, but typically it is one parent to many derived.

Type

List[ResourceId]

resourceId

The unique ResourceId that identifies this resource.

type

The ResourceType of the resource.

class renderdoc.ResourceType(value)

The type of a resource referred to by binding or API usage.

In some cases there is a little overlap or fudging when mapping API concepts - this is primarily just intended for e.g. fuzzy user filtering or rough categorisation. Precise mapping would require API-specific concepts.

Unknown

An unknown type of resource.

Device

A system-level object, typically unique.

Queue

A queue representing the ability to execute commands in a single stream, possibly in parallel to other queues.

CommandBuffer

A recorded set of commands that can then be subsequently executed.

Texture

A texture - one- to three- dimensional, possibly with array layers and mip levels. See TextureDescription.

Buffer

A linear (possibly typed) view of memory. See BufferDescription.

View

A particular view into a texture or buffer, e.g. either accessing the underlying resource through a different type, or only a subset of the resource.

Sampler

The information regarding how a texture is accessed including wrapping, minification/magnification and other information. The precise details are API-specific and listed in the API state when bound.

SwapchainImage

A special class of Texture that is owned by the swapchain and is used for presentation.

Memory

An object corresponding to an actual memory allocation, which other resources can then be bound to.

Shader

A single shader object for any shader stage. May be bound directly, or used to compose into a PipelineState depending on the API.

ShaderBinding

An object that determines some manner of shader binding. Since this varies significantly by API, different concepts used for shader resource binding fall under this type.

PipelineState

A single object containing all information regarding the current GPU pipeline, containing both shader objects, potentially some shader binding information, and fixed-function state.

StateObject

A single object encapsulating some amount of related state that can be set together, instead of setting each individual state separately.

RenderPass

An object related to collecting render pass information together. This may not be an actual explicit render pass object if it doesn’t exist in the API, it may also be a collection of textures in a framebuffer that are bound together to the API for rendering.

Query

A query for retrieving some kind of feedback from the GPU, either as a fixed number or a boolean value which can be used in predicated rendering.

Sync

A synchronisation object used for either synchronisation between GPU and CPU, or GPU-to-GPU work.

Pool

An object which pools together other objects in an opaque way, either for runtime allocation and deallocation, or for caching purposes.

AccelerationStructure

A structure used to carry implementation-defined spatial partitioning data and related information, used to accelerate geometry intersection queries (e.g. for ray tracing).

Textures

class renderdoc.TextureDescription

A description of a texture resource.

arraysize

How many array elements this texture has, will be at least 1.

byteSize

How many bytes would be used to store this texture and all its mips/slices.

creationFlags

The way this texture will be used in the pipeline.

cubemap

True if this texture is used as a cubemap or cubemap array.

depth

The depth of the texture, or 1 if not applicable.

dimension

The base dimension of the texture - either 1, 2, or 3.

format

The format of each pixel in the texture.

Type

ResourceFormat

height

The height of the texture, or 1 if not applicable.

mips

How many mips this texture has, will be at least 1.

msQual

The quality setting of this texture, or 0 if not applicable.

msSamp

How many multisampled samples this texture has, will be at least 1.

resourceId

The unique ResourceId that identifies this texture.

type

The TextureType of the texture.

width

The width of the texture, or length for buffer textures.

class renderdoc.TextureType(value)

The dimensionality of a texture binding.

Unknown

An unknown type of texture.

Buffer

A texel buffer.

Texture1D

A 1D texture.

Texture1DArray

A 1D texture array.

Texture2D

A 2D texture.

TextureRect

A rectangle texture, a legacy format for non-power of two textures.

Texture2DArray

A 2D texture array.

Texture2DMS

A multi-sampled 2D texture.

Texture2DMSArray

A multi-sampled 2D texture array.

Texture3D

A 3D texture.

TextureCube

A Cubemap texture.

TextureCubeArray

A Cubemap texture array.

class renderdoc.TextureCategory(value)

A set of flags describing how this texture may be used

NoFlags

The texture will not be used for any of the uses below.

ShaderRead

The texture will be read by a shader.

ColorTarget

The texture will be written to as a color target.

DepthTarget

The texture will be written to and tested against as a depth target.

ShaderReadWrite

The texture will be read and written to by a shader.

SwapBuffer

The texture is part of a window swapchain.

class renderdoc.Subresource

Specifies a subresource within a texture.

mip

The mip level in the texture.

sample

The sample in a multisampled texture.

slice

The slice within the texture. For 3D textures this is a depth slice, for arrays it is an array slice.

Note

Cubemaps are simply 2D array textures with a special meaning, so the faces of a cubemap are the 2D array slices in the standard order: X+, X-, Y+, Y-, Z+, Z-. Cubemap arrays are 2D arrays with 6 * N faces, where each cubemap within the array takes up 6 slices in the above order.

Buffers

class renderdoc.BufferDescription

A description of a buffer resource.

creationFlags

The way this buffer will be used in the pipeline.

gpuAddress

The known base GPU Address of this buffer. 0 if not applicable or available.

length

The byte length of the buffer.

resourceId

The unique ResourceId that identifies this buffer.

class renderdoc.BufferCategory(value)

A set of flags describing how this buffer may be used

NoFlags

The buffer will not be used for any of the uses below.

Vertex

The buffer will be used for sourcing vertex input data.

Index

The buffer will be used for sourcing primitive index data.

Constants

The buffer will be used for sourcing shader constant data.

ReadWrite

The buffer will be used for read and write access from shaders.

Indirect

The buffer will be used to provide indirect parameters for launching GPU-based actions.