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
- 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
ifname
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).
- DescriptorStore¶
A descriptor store, either driver or application managed. For example a Vulkan descriptor set or a D3D12 descriptor heap.
APIs without an explicit concept of descriptor storage will have virtual objects corresponding to temporary bindings.
- class renderdoc.DescriptorStoreDescription¶
A description of a descriptor store.
- descriptorByteSize¶
For descriptor stores which contain desriptors all of identical size, the size of each descriptor. Descriptors are assumed to be tightly packed so stride is equal to size.
- Type
int
- descriptorCount¶
The number of descriptors within this storage object.
- Type
int
- firstDescriptorOffset¶
The byte offset within the store to the first descriptor.
- Type
int
- resourceId¶
The unique
ResourceId
that identifies this descriptor store.- Type
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
- 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.