Enums and Data Structures¶
-
class
renderdoc.
CaptureAccess
An interface for accessing a capture, possibly over a network connection. This is a subset of the functionality provided in
CaptureFile
which only supports import/export and construction of files.-
DriverName
() Retrieves the name of the driver that was used to create this capture.
Returns: A simple string identifying the driver used to make the capture. Return type: str
-
FindSectionByName
(name) Locate the index of a section by its name. Returns
-1
if the section is not found.This index should not be cached, as writing sections could re-order the indices.
Parameters: name# (str) – The name of the section to search for. Returns: The index of the section, or -1
if not found.Return type: int
.
-
FindSectionByType
(type) Locate the index of a section by its type. Returns
-1
if the section is not found.This index should not be cached, as writing sections could re-order the indices.
Parameters: type# (SectionType) – The type of the section to search for. Returns: The index of the section, or -1
if not found.Return type: int
.
-
GetAvailableGPUs
() Returns the list of available GPUs, that can be used in combination with
ReplayOptions
to force replay on a particular GPU.Returns: The list of GPUs available. Return type: list
ofGPUDevice
-
GetResolve
(callstack) Retrieve the details of each stackframe in the provided callstack.
Must only be called after
InitResolver()
has returnedTrue
.Parameters: callstack# (list) – The integer addresses in the original callstack. Returns: The list of resolved callstack entries as strings. Return type: list
ofstr
-
GetSectionContents
(index) Get the raw byte contents of the specified section.
Parameters: index# (int) – The index of the section. Returns: The raw contents of the section, if the index is valid. Return type: bytes
.
-
GetSectionCount
() Retrieve the total number of available sections.
Returns: The number of sections in the capture Return type: int
.
-
GetSectionProperties
(index) Get the describing properties of the specified section.
Parameters: index# (int) – The index of the section. Returns: The properties of the section, if the index is valid. Return type: SectionProperties
-
HasCallstacks
() Query if callstacks are available.
Returns: True
if any callstacks are available,False
otherwise.Return type: bool
-
InitResolver
(interactive, progress) Begin initialising a callstack resolver, looking up symbol files and caching as necessary.
This function blocks while trying to initialise callstack resolving, so it should be called on a separate thread.
Parameters: - interactive# (bool) –
True
if missing symbols or other prompts should be resolved interactively. If this isFalse
, the function will not interact or block forever on user interaction and will always assume the input is effectively ‘cancel’ or empty. This may cause the symbol resolution to fail. - progress# (ProgressCallback) – A callback that will be repeatedly called with an updated progress
value for the resolver process. Can be
None
if no progress is desired.
Returns: True
if the resolver successfully initialised,False
if something went wrong.Return type: bool
- interactive# (bool) –
-
WriteSection
(props, contents) Writes a new section with specified properties and contents. If an existing section already has the same type or name, it will be overwritten (two sections cannot share the same type or name).
Parameters: Returns: True
if the section was written successfully,False
otherwise.Return type: bool
-
-
class
renderdoc.
Camera
A handle to a camera controller, used for user interaction and controlling a view of a 3D scene.
-
GetForward
() Retrieves the forward vector of the camera, in the positive Z direction.
Returns: The forward vector of the camera. W is set to 1 Return type: FloatVector
-
GetPosition
() Retrieves the position of the camera
Returns: The position vector of the camera. W is set to 1 Return type: FloatVector
-
GetRight
() Retrieves the right vector of the camera, in the positive X direction.
Returns: The right vector of the camera. W is set to 1 Return type: FloatVector
-
GetUp
() Retrieves the up vector of the camera, in the positive Y direction.
Returns: The up vector of the camera. W is set to 1 Return type: FloatVector
-
ResetArcball
() Reset the arcball to defaults.
-
RotateArcball
(ax, ay, bx, by) Rotates the arcball based on relative window co-ordinates.
The co-ordinates are in pixels and represent the old/new co-ordinates of the mouse cursor over the drag.
Parameters:
-
SetArcballDistance
(dist) Sets the distance in units the arcball camera sits away from the lookat position.
Parameters: dist# (float) – The distance of the camera from the lookat position.
-
SetFPSRotation
(x, y, z) Sets the rotation for an FPS camera.
It is invalid to call this function for arcball cameras.
Parameters:
-
SetPosition
(x, y, z) Sets the position for the camera, either arcball or FPS.
For arcball cameras, this sets the lookat position at the centre of the arcball.
For FPS look cameras, this sets the position of the camera in space.
Parameters:
-
Shutdown
() Closes the camera handle.
-
-
class
renderdoc.
VulkanLayerRegistrationInfo
Structure containing all the information about vulkan layer registration
-
flags
VulkanLayerFlags
detailing the current registration.
-
myJSONs
A list of jsons that should be registered
-
otherJSONs
A list of jsons that should be unregistered / updated
-
-
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
.
-
static
-
class
renderdoc.
SDBasic
The basic irreducible type of an object. Every other more complex type is built on these.
-
Chunk
¶ A ‘special’ type indicating that the object is a chunk. A chunk can be treated like a
Struct
otherwise. SeeSDChunk
.
-
Struct
¶ A composite type with some number of children of different types, each child with its own name. May in some cases be empty, so the presence of children should not be assumed.
-
Array
¶ A composite type with some number of children with an identical type and referred to purely by their index in the array. May be empty.
-
Null
¶ An indicator that an object could be here, but is optional and is currently not present. See
SDTypeFlags.Nullable
.
-
Buffer
¶ An opaque byte buffer.
-
String
¶ A string, encoded as UTF-8.
-
Enum
¶ An enum value - stored as an integer but with a distinct set of possible named values.
-
UnsignedInteger
¶ An unsigned integer.
-
SignedInteger
¶ An signed integer.
-
Float
¶ A floating point value.
-
Boolean
¶ A boolean true/false value.
-
Character
¶ A single byte character. Wide/multi-byte characters are not supported (these would be stored as a string with 1 character and multiple bytes in UTF-8).
-
Resource
¶ A ResourceId. Equivalent to (and stored as) an 8-byte unsigned integer, but specifically contains the unique Id of a resource in a capture.
-
-
class
renderdoc.
SDTypeFlags
Bitfield flags that could be applied to a type.
-
NoFlags
¶ This type has no special properties.
-
HasCustomString
¶ This type has a custom string. This could be used for example for enums, to display the string value of the enum as well as the integer storage, or perhaps for opaque types that should be displayed to the user as a string even if the underlying representation is not a string.
-
Hidden
¶ This type is considered an implementation detail and should not typically be displayed to the user.
-
Nullable
¶ This type is nullable and can sometimes be removed and replaced simply with a Null type. See
SDBasic.Null
.
-
NullString
¶ Special flag to indicate that this is a C-string which was NULL, not just empty.
-
FixedArray
¶ Special flag to indicate that this is array was a fixed-size real array, rather than a complex container type or a pointer & length.
-
Union
¶ Special flag to indicate that this is structure is stored as a union, meaning all children share the same memory and some external flag indicates which element is valid.
-
-
class
renderdoc.
SDType
Details the name and properties of a structured type
-
basetype
The
SDBasic
category that this type belongs to.
-
byteSize
The size in bytes that an instance of this type takes up.
This is only valid for whole chunks (where it contains the whole chunk size), for buffers that have an arbitrary size, or for basic types such as integers and floating point values where it gives the size/precision of the type.
For variable size types like structs, arrays, etc it will be set to 0.
-
flags
The
SDTypeFlags
flags for this type.
-
name
The name of this type.
-
-
class
renderdoc.
SDChunkFlags
Bitfield flags that could be applied to an
SDChunk
.-
NoFlags
¶ This chunk has no special properties.
-
OpaqueChunk
¶ This chunk wasn’t supported for decoding or was skipped for another reason and was detailed as an opaque byte stream. It should be preserved as-is and will remain in native RDC format.
-
HasCallstack
¶ This chunk has a callstack. Used to indicate the presence of a callstack even if it’s empty (perhaps due to failure to collect the stack frames).
-
-
class
renderdoc.
SDChunkMetaData
The metadata that goes along with a
SDChunk
to detail how it was recorded.-
callstack
The frames of the CPU-side callstack leading up to the chunk.
-
chunkID
The internal chunk ID - unique given a particular driver in use.
-
durationMicro
The duration in microseconds that this chunk took. This is the time for the actual work, not the serialising. Since 0 is a possible value for this (for extremely fast calls), -1 is the invalid/not present value.
-
flags
The
SDChunkFlags
for this chunk.
-
length
The length in bytes of this chunk - may be longer than the actual sum of the data if a conservative size estimate was used on creation to avoid seeking to fix-up the stored length.
-
threadID
The ID of the thread where this chunk was recorded.
-
timestampMicro
The point in time when this chunk was recorded, in microseconds since program start.
-
-
class
renderdoc.
SDObjectPODData
The plain-old-data contents of an
SDObject
.Only one member is valid, as defined by the type of the
SDObject
.-
b
The value as a boolean.
-
c
The value as a single byte character.
-
d
The value as a floating point number.
-
i
The value as a signed integer.
-
id
The value as a
ResourceId
.
-
numChildren
A useful alias of
u
- the number of children when a struct/array.
-
u
The value as an unsigned integer.
-
-
class
renderdoc.
SDObjectData
The data inside an
SDObject
whether it’s plain old data or complex children.-
basic
The plain-old data contents of the object, in a
SDObjectPODData
.
-
children
A list of
SDObject
containing the children of thisSDObject
.
-
string
The string contents of the object.
-
-
class
renderdoc.
SDObject
Defines a single structured object.
-
AddChild
(child) Add a new child object by duplicating it.
-
AsBool
() Interprets the object as a
bool
and returns its value. Invalid if the object is not actually abool
.
-
AsFloat
() Interprets the object as a floating point number and returns its value. Invalid if the object is not actually a floating point number.
-
AsInt
() Interprets the object as an integer and returns its value. Invalid if the object is not actually an integer.
-
AsResourceId
() Interprets the object as a
ResourceId
and returns its value. Invalid if the object is not actually aResourceId
.
-
AsString
() Interprets the object as a string and returns its value. Invalid if the object is not actually a string.
-
Duplicate
() Create a deep copy of this object.
-
FindChild
(childName) Find a child object by a given name.
-
GetChild
(index) Get a child object at a given index.
-
GetChildren
() Get a
list
ofSDObject
children.
-
NumChildren
() Get the number of child objects.
-
data
The
SDObjectData
with the contents of this object.
-
name
The name of this object.
-
type
The
SDType
of this object.
-
-
class
renderdoc.
SDChunk
Defines a single structured chunk, which is a
SDObject
.-
Duplicate
() Create a deep copy of this chunk.
-
metadata
The
SDChunkMetaData
with the metadata for this chunk.
-
-
class
renderdoc.
StructuredChunkList
A
list
ofSDChunk
objects-
append
(value)
-
clear
()
-
copy
()
-
count
(item)
-
extend
(items)
-
index
(item, start=None, end=None)
-
insert
(index, value)
-
pop
(index=None)
-
remove
(item)
-
reverse
()
-
sort
(key=None, reverse=False)
-
-
class
renderdoc.
SDFile
Contains the structured information in a file. Owns the buffers and chunks.
-
Swap
(other) The version of this structured stream, typically only used internally.
-
buffers
A
list
of serialised buffers stored asbytes
objects
-
chunks
A
list
ofSDChunk
objects with the chunks in order.
-
version
The version of this structured stream, typically only used internally.
-
-
class
renderdoc.
CaptureOptions
Sets up configuration and options for optional features either at capture time or at API initialisation time that the user can enable or disable at will.
-
DecodeFromString
(str) Decode the options from a string, as returned by
EncodeAsString()
.
-
EncodeAsString
() Encode the current options to a string suitable for passing around between processes.
Returns: The encoded string, suitable for passing to DecodeFromString()
.Return type: str
-
allowFullscreen
Allow the application to enable fullscreen.
Default - enabled
True
- The application can enable or disable fullscreen at will.False
- fullscreen is force disabled.
-
allowVSync
Allow the application to enable vsync.
Default - enabled
True
- The application can enable or disable vsync at will.False
- vsync is force disabled.
-
apiValidation
Record API debugging events and messages
Default - disabled
True
- Enable built-in API debugging features and records the results into the capture logfile, which is matched up with events on replay.False
- no API debugging is forcibly enabled.
-
captureAllCmdLists
In APIs that allow for the recording of command lists to be replayed later, RenderDoc may choose to not capture command lists before a frame capture is triggered, to reduce overheads. This means any command lists recorded once and replayed many times will not be available and may cause a failure to capture.
Note
This is only true for APIs where multithreading is difficult or discouraged. Newer APIs like Vulkan and D3D12 will ignore this option and always capture all command lists since the API is heavily oriented around it and the overheads have been reduced by API design.
True
- All command lists are captured from the start of the application.False
- Command lists are only captured if their recording begins during the period when a frame capture is in progress.
-
captureCallstacks
Capture CPU callstacks for API events
Default - disabled
True
- Enables capturing of callstacks.False
- no callstacks are captured.
-
captureCallstacksOnlyDraws
When capturing CPU callstacks, only capture them from drawcalls. This option does nothing if
captureCallstacks
is not enabled.Default - disabled
True
- Only captures callstacks for drawcall type API events.False
- Callstacks, if enabled, are captured for every event.
-
debugOutputMute
Mute API debugging output when the API validation mode option is enabled.
Default - enabled
True
- Mute any API debug messages from being displayed or passed through.False
- API debugging is displayed as normal.
-
delayForDebugger
Specify a delay in seconds to wait for a debugger to attach, after creating or injecting into a process, before continuing to allow it to run.
0
indicates no delay, and the process will run immediately after injection.Default - 0 seconds
-
hookIntoChildren
Hooks any system API calls that create child processes, and injects RenderDoc into them recursively with the same options.
Default - disabled
True
- Hooks into spawned child processes.False
- Child processes are not hooked by RenderDoc.
-
refAllResources
By default RenderDoc only includes resources in the final logfile necessary for that frame, this allows you to override that behaviour.
Default - disabled
True
- all live resources at the time of capture are included in the log and available for inspection.False
- only the resources referenced by the captured frame are included.
-
verifyBufferAccess
Verify buffer access. This includes checking the memory returned by a Map() call to detect any out-of-bounds modification, as well as initialising buffers with undefined contents to a marker value to catch use of uninitialised memory.
Note
This option is only valid for OpenGL and D3D11. Explicit APIs such as D3D12 and Vulkan do not do the same kind of interception & checking and undefined contents are really undefined.
Default - disabled
True
- Verify buffer access.False
- No verification is performed, and overwriting bounds may cause crashes or corruption in RenderDoc.
-
-
class
renderdoc.
MeshFormat
Contains the details of a single element of data (such as position or texture co-ordinates) within a mesh.
-
allowRestart
True
if the primitive restart index feature should be used.
-
baseVertex
For indexed meshes, a value added to each index before using it to read the vertex.
-
farPlane
The far plane for the projection matrix.
-
format
The
ResourceFormat
describing this mesh component.
-
indexByteOffset
The offset in bytes where the indices start in idxbuf.
-
indexByteStride
The width in bytes of each index. Valid values are 1 (depending on API), 2 or 4.
-
indexResourceId
The
ResourceId
of the index buffer that goes with this mesh element.
-
instStepRate
The number of instances to render with the same value. See
instanced
.
-
instanced
True
if this mesh element comes from instanced data. SeeinstStepRate
.
-
meshColor
The color to use for rendering the wireframe of this mesh element, as a
FloatVector
.
-
nearPlane
The near plane for the projection matrix.
-
numIndices
The number of vertices in the mesh.
-
restartIndex
The primitive restart index to use, if possible. See
allowRestart
.
-
showAlpha
True
if the alpha component of this element should be used.
-
topology
The
Topology
that describes the primitives in this mesh.
-
unproject
True
if this mesh element contains post-projection positional data.
-
vertexByteOffset
The offset in bytes to the start of the vertex data.
-
vertexByteStride
The stride in bytes between the start of one vertex and the start of another.
-
vertexResourceId
The
ResourceId
of the vertex buffer containing this mesh element.
-
-
class
renderdoc.
MeshDisplay
Describes how to render a mesh preview of one or more meshes. Describes the camera configuration as well as what options to use when rendering both the current mesh, and any other auxilliary meshes.
-
NoHighlight
¶ Value for
highlightVert
if no vertex should be highlighted.
-
aspect
The aspect ratio to use when calculating a perspective projection matrix.
-
cam
The
Camera
to use when rendering all of the meshes.
-
curInstance
The index of the currently selected instance in the drawcall.
-
curView
The index of the currently selected multiview view in the drawcall.
-
fov
The field of view to use when calculating a perspective projection matrix.
-
highlightVert
The index of the vertex to highlight, or
NoHighlight
to select no vertex.
-
maxBounds
The maximum co-ordinates in each axis of the mesh bounding box.
-
minBounds
The minimum co-ordinates in each axis of the mesh bounding box.
-
ortho
True
if the projection matrix to use when unprojecting vertex positions is orthographic.
-
position
The
MeshFormat
of the position data for the mesh.
-
second
The
MeshFormat
of the secondary data for the mesh, if used for solid shading.
-
showAllInstances
True
if all instances in the drawcall should be drawn as secondary meshes.
-
showBBox
True
if the bounding box around the mesh should be rendered.
-
showPrevInstances
True
if all previous instances in the drawcall should be drawn as secondary meshes.
-
showWholePass
True
if all draws in the current pass up to the current draw should be drawn as secondary meshes.
-
solidShadeMode
The
solid shading mode
to use when rendering the current mesh.
-
type
The
MeshDataStage
where this mesh data comes from.
-
wireframeDraw
True
if the wireframe of the mesh should be rendered as well as solid shading.
-
-
class
renderdoc.
TextureDisplay
Describes how to render a texture preview of an image. Describes the zoom and pan settings for the texture when rendering on a particular output, as well as the modification and selection of a particular subresource (such as array slice, mip or multi-sampled sample).
Note
X and Y co-ordinates are always considered to be top-left, even on GL, for consistency between APIs and preventing the need for API-specific code in most cases. This means if co-ordinates are fetched from e.g. viewport or scissor data or other GL pipeline state which is perhaps in bottom-left co-ordinates, care must be taken to translate them.
-
ResolveSamples
¶ Value for
sampleIdx
if the samples should be averaged.
-
alpha
True
if the alpha channel should be visible. If enabled with any of RGB, the texture will be blended to the background color or checkerboard.If only one channel is selected, it will be rendered in grayscale
-
backgroundColor
The background color to use behind the texture display.
If set to (0, 0, 0, 0) the global checkerboard colors are used.
-
blue
True
if the blue channel should be visible.If only one channel is selected, it will be rendered in grayscale
-
customShaderId
The
ResourceId
of a custom shader to use when rendering.See
ReplayController.BuildCustomShader()
for creating an appropriate custom shader.
-
decodeYUV
True
if the texture should be decoded as if it contains YUV data.
-
flipY
True
if the texture should be flipped vertically when rendering.
-
green
True
if the green channel should be visible.If only one channel is selected, it will be rendered in grayscale
-
hdrMultiplier
If
>= 0.0
the RGBA values will be viewed as HDRM with this as the multiplier.
-
linearDisplayAsGamma
True
if the texture should be interpreted as gamma.See the FAQ entry.
-
overlay
Selects a
DebugOverlay
to draw over the top of the texture.
-
rangeMax
The value in each channel to map to the white point.
-
rangeMin
The value in each channel to map to the black point.
-
rawOutput
True
if the rendered image should be as close as possible in value to the input.This is primarily useful when rendering to a floating point target for retrieving pixel data from the input texture in cases where it isn’t easy to directly fetch the input texture data.
-
red
True
if the red channel should be visible.If only one channel is selected, it will be rendered in grayscale
-
resourceId
The
ResourceId
of the texture to display.
-
scale
The scale to apply to the texture when rendering as a floating point value.
1.0
corresponds to100%
-
subresource
The subresource of the texture to display.
If the
Subresource.sample
member is set toResolveSamples
then a default resolve will be performed that averages all samples.
-
typeCast
If possible interpret the texture with this type instead of its normal type.
If set to
CompType.Typeless
then no cast is applied, otherwise where allowed the texture data will be reinterpreted - e.g. from unsigned integers to floats, or to unsigned normalised values.
-
xOffset
The offset to pan in the X axis.
-
yOffset
The offset to pan in the Y axis.
-
-
class
renderdoc.
TextureComponentMapping
How to map components to normalised
[0, 255]
for saving to 8-bit file formats.-
blackPoint
The value that should be mapped to
0
-
whitePoint
The value that should be mapped to
255
-
-
class
renderdoc.
TextureSampleMapping
How to map multisampled textures for saving to non-multisampled file formats.
-
ResolveSamples
¶ Value for
sampleIndex
if the samples should be averaged.
-
mapToArray
True
if the samples should be mapped to array slices. A multisampled array expands each slice in-place, so it would be slice 0: sample 0, slice 0: sample 1, slice 1: sample 0, etc.This then follows the mapping for array slices as with any other array texture.
sampleIndex
is ignored.
-
sampleIndex
If
mapToArray
isFalse
this selects which sample should be extracted to treat as a normal 2D image. If set toResolveSamples
then instead there’s a default average resolve.
-
-
class
renderdoc.
TextureSliceMapping
How to map array textures for saving to non-arrayed file formats.
If
sliceIndex
is -1,cubeCruciform
==slicesAsGrid
==False
and the file format doesn’t support saving all slices, only slice 0 is saved.-
cubeCruciform
Write out 6 slices in a cruciform pattern:
+----+ | +y | | | +----+----+----+----+ | -x | +z | +x | -z | | | | | | +----+----+----+----+ | -y | | | +----+
With the gaps filled in with transparent black.
-
sliceGridWidth
The width of a grid if
slicesAsGrid
isTrue
.
-
sliceIndex
Selects the (depth/array) slice to save.
If this is -1, then all slices are written out as detailed below. This is only supported in formats that don’t support slices natively, and will be done in RGBA8.
-
slicesAsGrid
If
True
, write out the slices as a 2D grid with the width given insliceGridWidth
. Any empty slices in the grid are written as transparent black.
-
-
class
renderdoc.
TextureSave
Describes a texture to save and how to map it to the destination file format.
-
alpha
Controls handling of alpha channel, mostly relevant for file formats that without alpha.
It is an
AlphaMapping
that controls what behaviour to use.
-
alphaCol
The background color if
alpha
is set toAlphaMapping.BlendToColor
-
channelExtract
Selects a single component out of a texture to save as grayscale, or -1 to save all.
-
comp
Controls black/white point mapping for output formats that are normal
8-bit SRGB
, values are
-
destType
The
FileType
to use when saving to the destination file.
-
jpegQuality
The quality to use when saving to a
JPG
file. Valid values are between 1 and 100.
-
mip
Selects the mip to be written out.
If set to
-1
then all mips are written, where allowed by file format. If not allowed, mip 0 is written
-
resourceId
The
ResourceId
of the texture to save.
-
sample
Controls mapping for multisampled textures (ignored if texture is not multisampled)
-
slice
Controls mapping for arrayed textures (ignored if texture is not arrayed)
-
typeCast
If possible interpret the texture with this type instead of its normal type.
If set to
CompType.Typeless
then no cast is applied, otherwise where allowed the texture data will be reinterpreted - e.g. from unsigned integers to floats, or to unsigned normalised values.
-
-
class
renderdoc.
NewCaptureData
Information about the a new capture created by the target.
-
api
The API used for this capture, if available.
Note
May be empty if running with an older version of RenderDoc
-
byteSize
The size of the capture, in bytes.
-
captureId
An identifier to use to refer to this capture.
-
frameNumber
The frame number that this capture came from.
-
local
True
if the target is running on the local system.
-
path
The local path on the target system where the capture is saved.
-
thumbHeight
The height of the image contained in
thumbnail
.
-
thumbWidth
The width of the image contained in
thumbnail
.
-
thumbnail
The raw bytes that contain the capture thumbnail, as RGB8 data.
-
timestamp
The time the capture was created, as a unix timestamp in UTC.
-
-
class
renderdoc.
APIUseData
Information about the API that the target is using.
-
name
The name of the API.
-
presenting
True
if the API is presenting to a swapchain
-
supported
True
if the API can be captured.
-
-
class
renderdoc.
BusyData
Information about why the target is busy.
-
clientName
The name of the client currently connected to the target.
-
-
class
renderdoc.
NewChildData
Information about a new child process spawned by the target.
-
ident
The ident where the new child’s target control is active.
-
processId
The PID (Process ID) of the new child.
-
-
class
renderdoc.
TargetControlMessage
A message from a target control connection.
-
apiUse
The
API use data
.
-
busy
The
busy signal data
.
-
capProgress
The progress of an on-going capture.
When valid, will be in the range of 0.0 to 1.0 (0 - 100%). If not valid when a capture isn’t going or has finished, it will be -1.0
-
capturableWindowCount
The number of the capturable windows
-
newCapture
The
new capture data
.
-
newChild
The
new child process data
.
-
type
The
type
of message received
-
-
class
renderdoc.
EnvironmentModification
A modification to a single environment variable.
-
mod
The
modification
to use.
-
name
The name of the environment variable.
-
sep
The
separator
to use if needed.
-
value
The value to use with the modification specified in
mod
.
-
-
class
renderdoc.
CaptureFileFormat
The format for a capture file either supported to read from, or export to
-
convertSupported
Indicates whether captures or structured data can be saved out in this format.
-
description
A human readable long-form description of the file format.
-
extension
The file of the format as a single minimal string, e.g.
rdc
.
-
name
A human readable short phrase naming the file format.
-
openSupported
Indicates whether or not files in this format can be opened and processed as structured data.
-
requiresBuffers
Indicates whether exporting to this format requires buffers or just structured data. If it doesn’t require buffers then it can be exported directly from an opened capture, which by default has structured data but no buffers available.
-
-
class
renderdoc.
GPUDevice
Describes a single GPU at replay time.
-
apis
The list of APIs that this device supports.
-
deviceID
The PCI deviceID of this GPU.
-
driver
The name of the driver of this GPU, if multiple drivers are available for it.
-
name
The human-readable name of this GPU.
-
vendor
The
GPUVendor
of this GPU.
-
-
class
renderdoc.
ReplayOptions
The options controlling how replay of a capture should be performed
-
apiValidation
Replay with API validation enabled and use debug messages from there, ignoring any that may be contained in the capture.
The default is not to do any validation.
Note
RenderDoc does not handle invalid API use in the general case so validation should still be performed at runtime in your program for ground truth results.
-
forceGPUDeviceID
Force the selection of a GPU by device ID. This allows overriding which GPU is used to replay on.
When set to 0, specifies no particular device.
See
forceGPUDeviceID
for a full explanation of GPU selection override.
-
forceGPUDriverName
Force the selection of a GPU by driver name. This allows overriding which GPU is used to replay on.
When set to an empty string, specifies no particular driver.
See
forceGPUDeviceID
for a full explanation of GPU selection override.
-
forceGPUVendor
Force the selection of a GPU by vendor ID. This allows overriding which GPU is used to replay on, even if a different GPU would be the best match for the capture.
When set to
GPUVendor.Unknown
, specifies no particular vendor.See also
forceGPUDeviceID
andforceGPUDriverName
. Available GPUs can be enumerated usingCaptureAccess.GetAvailableGPUs()
.The default is not to do any override. The capture contains information about what GPU was used, and the closest matching GPU is used on replay.
Note
If a GPU is forced that is not available or not supported for a given capture, such as when GPUs are only available for some APIs and not others, the default GPU selection will be used. If a GPU is available for a capture but fails to open however then there is no fallback to a default GPU.
OpenGL does not support GPU selection so the default method (which effectively does nothing) will always be used.
-
optimisation
How much optimisation should be done, potentially at the cost of correctness.
The default is
ReplayOptimisationLevel.Balanced
.
-
-
class
renderdoc.
WindowingData
An opaque structure created to hold windowing setup data
-
class
renderdoc.
GlobalEnvironment
Internal structure used for initialising environment in a replay application.
-
enumerateGPUs
Whether to enumerate available GPUs. If the replay program is only being used for internal operation where enumerating GPUs would be too expensive or problematic, it can be disabled here.
-
waylandDisplay
The handle to the X display to use internally. If left
NULL
, wayland cannot be used.
-
xlibDisplay
The handle to the X display to use internally. If left
NULL
, one will be opened.
-
-
class
renderdoc.
ExecuteResult
The result of executing or injecting into a program.
-
ident
The ident where the new application is listening for target control, or 0 if something went wrong.
-
status
The
ReplayStatus
resulting from the operation, indicating success or failure.
-
-
class
renderdoc.
FloatVector
A floating point four-component vector
-
w
The w component.
-
x
The x component.
-
y
The y component.
-
z
The z component.
-
-
class
renderdoc.
PathEntry
Properties of a path on a remote filesystem.
-
filename
The filename of this path. This contains only the filename, not the full path.
-
flags
The
PathProperty
flags for this path.
-
lastmod
The last modified date of this path, as a unix timestamp in UTC.
-
size
The size of the path in bytes.
-
-
class
renderdoc.
SectionProperties
Properties of a section in a renderdoc capture file.
-
compressedSize
The number of bytes of data in this section when compressed on disk.
-
flags
The flags describing how this section is stored.
-
name
The name of this section.
-
type
The type of this section, if it is a known pre-defined section.
-
uncompressedSize
The number of bytes of data contained in this section, once uncompressed.
-
version
The version of this section - the meaning of which is up to the type.
-
-
class
renderdoc.
ResourceFormat
Description of the format of a resource or element.
-
BGRAOrder
() Returns: True
if the components are to be read inBGRA
order.Return type: bool
-
ElementSize
() Return the size of a single element in this format, usually a pixel. For regular sized formats this is just
compByteWidth
timescompCount
, for special packed formats it’s the tightly packed size of a single element, with no padding.Block-compressed formats define an ‘element’ as a whole block of texels.
YUV formats where texel size varies depending on subsampling will return the size of a decompressed texel.
Returns: The size of an element Return type: int
-
Name
() Returns: The name of the format. Return type: str
-
SRGBCorrected
() Equivalent to checking if
compType
isCompType.UNormSRGB
Returns: True
if the components are SRGB corrected on read and write.Return type: bool
-
SetBGRAOrder
(flag) Set BGRA order flag. See
BGRAOrder()
.Parameters: flag# (bool) – The new flag value.
-
SetYUVPlaneCount
(planes) Set number of YUV planes. See
YUVPlaneCount()
.Invalid values will result in 1 being set.
Parameters: planes# (int) – The new number of YUV planes.
-
SetYUVSubsampling
(subsampling) Set YUV subsampling rate. See
YUVSubsampling()
.The value should be e.g. 444 for 4:4:4 or 422 for 4:2:2. Invalid values will result in 0 being set.
Parameters: subsample# (int) – The new subsampling rate.
-
Special
() Returns: True
if theResourceFormat
is a ‘special’ non-regular type.Return type: bool
-
YUVPlaneCount
() Get the number of planes for a YUV format. Only valid when
type
is a YUV format likeResourceFormatType.YUV8
.For other formats, 1 is returned.
Returns: The number of planes Return type: int
-
YUVSubsampling
() Get the subsampling rate for a YUV format. Only valid when
type
is a YUV format likeResourceFormatType.YUV8
.For other formats, 0 is returned.
Returns: The subsampling rate, e.g. 444 for 4:4:4 or 420 for 4:2:0 Return type: int
-
compByteWidth
The width in bytes of each component.
-
compCount
The number of components in each element.
-
compType
The
type
of each component.
-
type
Return the size of a single element in this format, usually a pixel. For regular sized formats this is just
compByteWidth
timescompCount
, for special packed formats it’s the tightly packed size of a single element, with no padding.Block-compressed formats define an ‘element’ as a whole block of texels.
YUV formats where texel size varies depending on subsampling will return the size of a decompressed texel.
Returns: The size of an element Return type: int
-
-
class
renderdoc.
TextureFilter
The details of a texture filter in a sampler.
-
filter
The
FilterFunction
to apply after interpolating values.
-
magnify
The
FilterMode
to use when magnifying the texture.
-
minify
The
FilterMode
to use when minifying the texture.
-
mip
The
FilterMode
to use when interpolating between mips.
-
-
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.
-
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.
-
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.
-
resourceId
The unique
ResourceId
that identifies this resource.
-
type
The
ResourceType
of the resource.
-
-
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.
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
ResourceFormat
that describes the format of each pixel in the texture.
-
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.
APIEvent
An individual API-level event, generally corresponds one-to-one with an API call.
-
callstack
A list of addresses in the CPU callstack where this function was called.
-
chunkIndex
The chunk index for this function call in the structured file.
-
eventId
The API event’s Event ID.
This is a 1-based count of API events in the capture. The eventId is used as a reference point in many places in the API to represent where in the capture the ‘current state’ is, and to perform analysis in reference to the state at a particular point in the frame.
eventIds are always increasing and positive, but they may not be contiguous - in some circumstances there may be gaps if some events are consumed entirely internally, such as debug marker pops which only modify the internal drawcall tree structures.
Also eventIds may not correspond directly to an actual function call - sometimes a function such as a multi draw indirect will be one function call that expands to multiple events to allow inspection of results part way through the multi draw.
-
fileOffset
A byte offset in the data stream where this event happens.
Note
This should only be used as a relative measure, it is not a literal number of bytes from the start of the file on disk.
-
-
class
renderdoc.
DebugMessage
A debugging message from the API validation or internal analysis and error detection.
-
category
The
category
of this debug message.
-
description
The string contents of the message.
-
eventId
The
eventId
where this debug message was found.
-
messageID
An ID that identifies this particular debug message uniquely.
-
severity
The
severity
of this debug message.
-
source
The
source
of this debug message.
-
-
class
renderdoc.
BucketRecordType
The type of bucketing method for recording statistics.
-
Linear
¶ Each bucket contains a fixed number of elements. The highest bucket also accumulates any values too high for any of the buckets.
-
Pow2
¶ Each bucket holds twice as many elements as the previous one, with the first bucket containing just 1 (bucket index is
log2(value)
).
-
-
class
renderdoc.
ConstantBindStats
Contains the statistics for constant binds in a frame.
-
BucketType
¶ The type of buckets being used. See
BucketRecordType
.
-
BucketCount
¶ How many buckets there are in the arrays.
-
bindslots
A list where the Nth element contains the number of calls that bound N buffers.
-
calls
How many function calls were made.
-
nulls
How many objects were unbound.
-
sets
How many objects were bound.
-
sizes
A
bucketed
list over the sizes of buffers bound.
-
-
class
renderdoc.
SamplerBindStats
Contains the statistics for sampler binds in a frame.
-
bindslots
A list where the Nth element contains the number of calls that bound N samplers.
-
calls
How many function calls were made.
-
nulls
How many objects were unbound.
-
sets
How many objects were bound.
-
-
class
renderdoc.
ResourceBindStats
Contains the statistics for resource binds in a frame.
-
bindslots
A list where the Nth element contains the number of calls that bound N resources.
-
calls
How many function calls were made.
-
nulls
How many objects were unbound.
-
sets
How many objects were bound.
-
types
A list with one element for each type in
TextureType
.The Nth element contains the number of times a resource of that type was bound.
-
-
class
renderdoc.
ResourceUpdateStats
Contains the statistics for resource updates in a frame.
-
BucketType
¶ The type of buckets being used. See
BucketRecordType
.
-
BucketCount
¶ How many buckets there are in the arrays.
-
calls
How many function calls were made.
-
clients
How many of
calls
were mapped pointers written by the CPU.
-
servers
How many of
calls
were batched updates written in the command queue.
-
sizes
A
bucketed
list over the number of bytes in the update.
-
types
A list with one element for each type in
TextureType
.The Nth element contains the number of times a resource of that type was updated.
-
-
class
renderdoc.
DrawcallStats
Contains the statistics for draws in a frame.
-
BucketType
¶ The type of buckets being used. See
BucketRecordType
.
-
BucketSize
¶ How many elements each bucket contains.
-
BucketCount
¶ How many buckets there are in the arrays.
-
calls
How many draw calls were made.
-
counts
A
bucketed
list over the number of instances in the draw.
-
indirect
How many of
calls
were indirect.
-
instanced
How many of
calls
were instanced.
-
-
class
renderdoc.
DispatchStats
Contains the statistics for compute dispatches in a frame.
-
calls
How many dispatch calls were made.
-
indirect
How many of
calls
were indirect.
-
-
class
renderdoc.
IndexBindStats
Contains the statistics for index buffer binds in a frame.
-
calls
How many function calls were made.
-
nulls
How many objects were unbound.
-
sets
How many objects were bound.
-
-
class
renderdoc.
VertexBindStats
Contains the statistics for vertex buffer binds in a frame.
-
bindslots
A list where the Nth element contains the number of calls that bound N vertex buffers.
-
calls
How many function calls were made.
-
nulls
How many objects were unbound.
-
sets
How many objects were bound.
-
-
class
renderdoc.
LayoutBindStats
Contains the statistics for vertex layout binds in a frame.
-
calls
How many function calls were made.
-
nulls
How many objects were unbound.
-
sets
How many objects were bound.
-
-
class
renderdoc.
ShaderChangeStats
Contains the statistics for shader binds in a frame.
-
calls
How many function calls were made.
-
nulls
How many objects were unbound.
-
redundants
How many calls made no change due to the existing bind being identical.
-
sets
How many objects were bound.
-
-
class
renderdoc.
BlendStats
Contains the statistics for blend state binds in a frame.
-
calls
How many function calls were made.
-
nulls
How many objects were unbound.
-
redundants
How many calls made no change due to the existing bind being identical.
-
sets
How many objects were bound.
-
-
class
renderdoc.
DepthStencilStats
Contains the statistics for depth stencil state binds in a frame.
-
calls
How many function calls were made.
-
nulls
How many objects were unbound.
-
redundants
How many calls made no change due to the existing bind being identical.
-
sets
How many objects were bound.
-
-
class
renderdoc.
RasterizationStats
Contains the statistics for rasterizer state binds in a frame.
-
calls
How many function calls were made.
-
nulls
How many objects were unbound.
-
rects
A list where the Nth element contains the number of calls that bound N scissor rects.
-
redundants
How many calls made no change due to the existing bind being identical.
-
sets
How many objects were bound.
-
viewports
A list where the Nth element contains the number of calls that bound N viewports.
-
-
class
renderdoc.
OutputTargetStats
Contains the statistics for output merger or UAV binds in a frame.
-
bindslots
A list where the Nth element contains the number of calls that bound N targets.
-
calls
How many function calls were made.
-
nulls
How many objects were unbound.
-
sets
How many objects were bound.
-
-
class
renderdoc.
FrameStatistics
Contains all the available statistics about the captured frame.
Currently this information is only available on D3D11 and is fairly API-centric.
-
blends
Information about blend state binds.
-
constants
A list of constant buffer bind statistics, one per each
stage
.
-
depths
Information about depth-stencil state binds.
-
dispatches
Information about compute dispatches.
-
draws
Information about drawcalls.
-
indices
Information about index buffer binds.
-
layouts
Information about vertex layout binds.
-
outputs
Information about output merger and UAV binds.
-
rasters
Information about rasterizer state binds.
-
recorded
True
if the statistics in this structure are valid.
-
resources
A list of resource bind statistics, one per each
stage
.
-
samplers
A list of sampler bind statistics, one per each
stage
.
-
shaders
A list of shader bind statistics, one per each
stage
.
-
updates
Information about resource contents updates.
-
vertices
Information about vertex buffer binds.
-
-
class
renderdoc.
FrameDescription
Contains frame-level global information
-
NoFrameNumber
¶ No frame number is available.
-
captureTime
The time when the capture was created, as a unix timestamp in UTC.
-
compressedFileSize
The total file size of the whole capture in bytes, before decompression.
-
debugMessages
A list of debug messages that are not associated with any particular event.
-
fileOffset
The offset into the file of the start of the frame.
Note
Similarly to
APIEvent.fileOffset
this should only be used as a relative measure, as it is not a literal number of bytes from the start of the file on disk.
-
frameNumber
Starting from frame #1 defined as the time from application startup to first present, this counts the frame number when the capture was made.
Note
This value is only accurate if the capture was triggered through the default mechanism, if it was triggered from the application API it doesn’t correspond to anything and will be set to
NoFrameNumber
.
-
initDataSize
The byte size of the section of the file that contains frame-initial contents.
-
persistentSize
The byte size of the section of the file that must be kept in memory persistently.
-
stats
The
frame statistics
.
-
uncompressedFileSize
The total file size of the whole capture in bytes, after decompression.
-
-
class
renderdoc.
EventUsage
Describes a particular use of a resource at a specific
eventId
.-
eventId
The
eventId
where this usage happened.
-
usage
The
ResourceUsage
in question.
-
view
An optional
ResourceId
identifying the view through which the use happened.
-
-
class
renderdoc.
DrawcallDescription
Describes the properties of a drawcall, dispatch, debug marker, or similar event.
-
Reset
() Resets the drawcall back to a default/empty state.
-
baseVertex
For indexed drawcalls, the offset added to each index after fetching.
-
children
A list of
DrawcallDescription
child drawcalls.
-
copyDestination
The
ResourceId
identifying the destination object in a copy, resolve or blit operation.
-
copySource
The
ResourceId
identifying the source object in a copy, resolve or blit operation.
-
depthOut
The resource used for depth output - see
outputs
.
-
dispatchBase
The 3D base offset of the workgroup ID if the call allows an override, or 0 if not.
-
dispatchDimension
The 3D number of workgroups to dispatch in a dispatch call.
-
dispatchThreadsDimension
The 3D size of each workgroup in threads if the call allows an override, or 0 if not.
-
drawIndex
The index of this draw in an call with multiple draws, e.g. an indirect draw.
0 if not part of a multi-draw.
-
drawcallId
A 1-based index of this drawcall relative to other drawcalls.
-
eventId
The
eventId
that actually produced the drawcall.
-
events
A list of the
APIEvent
events that happened since the previous drawcall.
-
flags
A set of
DrawFlags
properties describing what kind of drawcall this is.
-
indexByteWidth
The width in bytes of each index.
Valid values are 1 (depending on API), 2 or 4, or 0 if the drawcall is not an indexed draw.
-
indexOffset
For indexed drawcalls, the first index to fetch from the index buffer.
-
instanceOffset
For instanced drawcalls, the offset applied before looking up instanced vertex inputs.
-
markerColor
A RGBA color specified by a debug marker call.
-
name
The name of this drawcall. Typically a summarised/concise list of parameters.
Note
For drawcalls, the convention is to list primary parameters (vertex/index count, instance count) and omit secondary parameters (vertex offset, instance offset).
-
next
The next drawcall in the frame, or
None
if this is the last drawcall in the frame.
-
numIndices
The number of indices or vertices as appropriate for the drawcall. 0 if not used.
-
numInstances
The number of instances for the drawcall. 0 if not used.
-
outputs
A simple list of the
ResourceId
ids for the color outputs, which can be used for very coarse bucketing of drawcalls into similar passes by their outputs.
-
parent
The parent of this drawcall, or
None
if there is no parent for this drawcall.
-
previous
The previous drawcall in the frame, or
None
if this is the first drawcall in the frame.
-
topology
The
Topology
used in this drawcall.
-
vertexOffset
For non-indexed drawcalls, the offset applied before looking up each vertex input.
-
-
class
renderdoc.
APIProperties
Gives some API-specific information about the capture.
-
degraded
True
if the capture was loaded successfully but running in a degraded mode - e.g. with software rendering, or with some functionality disabled due to lack of support.
-
localRenderer
The
GraphicsAPI
used to render the log. For remote replay this could be different to the above, and lets the UI make decisions e.g. to flip rendering of images.
-
pipelineType
The
GraphicsAPI
of the actual log/capture.
-
pixelHistory
(
True
if the API supports viewing pixel history.
-
rgpCapture
True
if the driver and system are configured to allow creating RGP captures.
-
shaderDebugging
(
True
if the API supports shader debugging.
-
shadersMutable
True
if the driver mutates shader reflection structures from event to event. Currently this is only true for OpenGL where the superfluous indirect in the binding model must be worked around by re-sorting bindings.
-
vendor
The
GPUVendor
of the active GPU being used.
-
-
class
renderdoc.
DriverInformation
Gives information about the driver for this API.
-
vendor
The
GPUVendor
that provides this driver
-
version
The version string for the driver
-
-
class
renderdoc.
Uuid
A 128-bit Uuid.
-
words
The Uuid bytes as an array of four 32-bit integers.
-
-
class
renderdoc.
CounterDescription
Describes a GPU counter’s purpose and result value.
-
category
The counter category. Can be empty for uncategorized counters.
-
counter
The
GPUCounter
this counter represents.Note
This is stored as an
int
not aGPUCounter
to allow for values that may not correspond to any of the predefined values if it’s a hardware-specific counter value.
-
description
If available, a longer human-readable description of the value this counter measures.
-
name
A short human-readable name for the counter.
-
resultByteWidth
The number of bytes in the resulting value.
-
resultType
The
type of value
returned by this counter.
-
unit
The
CounterUnit
for the result value.
-
uuid
The
Uuid
of this counter, which uniquely identifies it.
-
-
class
renderdoc.
CounterValue
A resulting value from a GPU counter. Only one member is valid, see
CounterDescription
.-
d
A
double
value.
-
f
A
float
value.
-
u32
A 32-bit unsigned integer.
-
u64
A 64-bit unsigned integer.
-
-
class
renderdoc.
CounterResult
The resulting value from a counter at an event.
-
counter
The
counter
that produced this value, stored as an int.Note
This is stored as an
int
not aGPUCounter
to allow for values that may not correspond to any of the predefined values if it’s a hardware-specific counter value.
-
eventId
The
eventId
that produced this value.
-
value
The value itself.
-
-
class
renderdoc.
PixelValue
The contents of an RGBA pixel.
-
floatValue
The RGBA value interpreted as
float
.
-
intValue
The RGBA value interpreted as 32-bit signed integer.
-
uintValue
The RGBA value interpreted as 32-bit unsigned integer.
-
-
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.
-
-
class
renderdoc.
ModificationValue
The value of pixel output at a particular event.
-
col
The color value.
-
depth
The depth output, as a
float
.
-
stencil
The stencil output, or
-1
if not available.
-
-
class
renderdoc.
PixelModification
An attempt to modify a pixel by a particular event.
-
Passed
() Determine if this fragment passed all tests and wrote to the texture.
Returns: True
if it passed all tests,False
if it failed any.Return type: bool
-
backfaceCulled
True
if the backface culling test eliminated this fragment.
-
depthClipped
True
if depth near/far clipping eliminated this fragment.
-
depthTestFailed
True
if depth testing eliminated this fragment.
-
directShaderWrite
True
if this event came as part of an arbitrary shader write.
-
eventId
The
eventId
where the modification happened.
-
fragIndex
A 0-based index of which fragment this modification corresponds to, in the case that multiple fragments from a single draw wrote to a pixel.
-
postMod
The
ModificationValue
of the texture after this fragment ran.
-
preMod
The
ModificationValue
of the texture before this fragment ran.This is valid only for the first fragment if multiple fragments in the same event write to the same pixel.
-
predicationSkipped
True
if predicated rendering skipped this call.
-
primitiveID
The primitive that generated this fragment.
-
sampleMasked
True
if the sample mask eliminated this fragment.
-
scissorClipped
True
if scissor clipping eliminated this fragment.
-
shaderDiscarded
True
if the pixel shader executed a discard on this fragment.
-
shaderOut
The
ModificationValue
that this fragment wrote from the pixel shader.
-
stencilTestFailed
True
if stencil testing eliminated this fragment.
-
unboundPS
True
if no pixel shader was bound at this event.
-
viewClipped
True
if viewport clipping eliminated this fragment.
-
-
class
renderdoc.
Thumbnail
Contains the bytes and metadata describing a thumbnail.
-
data
The
bytes
byte array containing the raw data.
-
height
The height of the thumbnail image.
-
type
The
FileType
of the data in the thumbnail.
-
width
The width of the thumbnail image.
-
-
class
renderdoc.
SectionType
The types of several pre-defined and known sections. This allows consumers of the API to recognise and understand the contents of the section.
Note that sections above the highest value here may be encountered if they were written in a new version of RenderDoc that addes a new section type. They should be considered equal to
Unknown
by any processing.-
Unknown
¶ An unknown section - any custom or non-predefined section will have this type.
-
FrameCapture
¶ This section contains the actual captured frame, in RenderDoc’s internal chunked representation. The contents can be fetched as structured data with or without replaying the frame.
The name for this section will be “renderdoc/internal/framecapture”.
-
ResolveDatabase
¶ This section contains platform-specific data used to resolve callstacks.
The name for this section will be “renderdoc/internal/resolvedb”.
-
Bookmarks
¶ This section contains a JSON document with bookmarks added to the capture to highlight important events.
The name for this section will be “renderdoc/ui/bookmarks”.
-
Notes
¶ This section contains a JSON document with free-form information added for human consumption, e.g. details about how the capture was obtained with repro steps in the original program, or with driver and machine info.
The name for this section will be “renderdoc/ui/notes”.
-
ResourceRenames
¶ This section contains a JSON document with custom names applied to resources in the UI, over and above any friendly names specified in the capture itself.
The name for this section will be “renderdoc/ui/resrenames”.
-
AMDRGPProfile
¶ This section contains a .rgp profile from AMD’s RGP tool, which can be extracted and loaded.
The name for this section will be “amd/rgp/profile”.
-
ExtendedThumbnail
¶ This section contains a thumbnail in format other than JPEG. For example, when it needs to be lossless.
The name for this section will be “renderdoc/internal/exthumb”.
-
-
class
renderdoc.
DebugVariableType
Represents the category of debugging variable that a source variable maps to.
-
Undefined
¶ Undefined type.
-
Input
¶ A constant input value, stored globally.
-
Constant
¶ A constant buffer value, stored globally.
-
ReadOnlyResource
¶ A read-only resource, stored globally.
-
ReadWriteResource
¶ A read-write resource, stored globally.
-
Constant
A constant buffer value, stored globally.
-
Variable
¶ A mutable variable, stored per state.
-
-
class
renderdoc.
VarType
Represents the base type of a shader variable in debugging or constant blocks.
-
Float
¶ A single-precision (32-bit) floating point value.
-
Double
¶ A double-precision (64-bit) floating point value.
-
Half
¶ A half-precision (16-bit) floating point value.
-
SInt
¶ A signed 32-bit integer value.
-
UInt
¶ An unsigned 32-bit integer value.
-
SShort
¶ A signed 16-bit integer value.
-
UShort
¶ An unsigned 16-bit integer value.
-
SLong
¶ A signed 64-bit integer value.
-
ULong
¶ An unsigned 64-bit integer value.
-
SByte
¶ A signed 8-bit integer value.
-
UByte
¶ An unsigned 8-bit integer value.
-
Unknown
¶ An unknown type.
-
-
class
renderdoc.
CompType
Represents the component type of a channel in a texture or element in a structure.
-
Typeless
¶ A component that has no concrete type.
-
Float
¶ A single-precision (32-bit) floating point value. This is an IEEE float with 1 sign bit, 8 bits of exponent and 23 bits of mantissa.
-
UNorm
¶ An unsigned normalised floating point value. This is converted by dividing the input value by the maximum representable unsigned integer value, to produce a value in the range
[0, 1]
-
SNorm
¶ A signed normalised floating point value in range. This is converted by dividing the input value by the maximum representable positive signed integer value, to produce a value in the range
[-1, 1]
. As a special case, the maximum negative signed integer is also mapped to-1
so there are two representations of -1. This means there is only one0
value and that there is the same range of available values for positive and negative values.For example, signed 16-bit integers range from
-32768
to+32767
.-32768
is mapped to-1
, and then any other value is divided by32767
giving an equal set of values in the range[-1, 0]
as in the range[0, 1]
.
-
UInt
¶ An unsigned integer value.
-
SInt
¶ A signed integer value.
-
UScaled
¶ An unsigned scaled floating point value. This is converted from the input unsigned integer without any normalisation as with
UNorm
, so the resulting values range from0
to the maximum unsigned integer value2^N - 1
.
-
SScaled
¶ A signed scaled floating point value. This is converted from the input unsigned integer without any normalisation as with
SNorm
, so the resulting values range from the minimum signed integer value-2^(N-1)
to the maximum signed integer value2^(N-1) - 1
.
-
Depth
¶ An opaque value storing depth information, either
unsigned normalised
orfloating point
.
-
Double
¶ A double-precision (64-bit) floating point value.
-
-
class
renderdoc.
TextureSwizzle
A single source component for a destination texture swizzle.
-
Red
¶ The Red component.
-
Green
¶ The Green component.
-
Blue
¶ The Blue component.
-
Alpha
¶ The Alpha component.
-
Zero
¶ The fixed value
0
.
-
One
¶ The fixed value
1
.
-
-
class
renderdoc.
AddressMode
A texture addressing mode in a single direction (U,V or W).
-
Wrap
¶ The texture is tiled at every multiple of 1.0.
-
MirrorClamp
¶ Alias of
MirrorOnce
.
-
ClampEdge
¶ The texture is clamped to the range of
[0.0, 1.0]
and the texture value at each end used.
-
ClampBorder
¶ The texture is clamped such that texture co-ordinates outside the range of
[0.0, 1.0]
are set to the border color specified in the sampler.
-
-
class
renderdoc.
ResourceType
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.
-
-
class
renderdoc.
TextureType
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.
BindType
The type of a shader resource bind.
-
Unknown
¶ An unknown type of binding.
-
ConstantBuffer
¶ A constant or uniform buffer.
-
Sampler
¶ A separate sampler object.
-
ImageSampler
¶ A combined image and sampler object.
-
ReadOnlyImage
¶ An image that can only be sampled from.
-
ReadWriteImage
¶ An image that can be read from and written to arbitrarily.
-
ReadOnlyTBuffer
¶ A texture buffer that can only be read from.
-
ReadWriteTBuffer
¶ A texture buffer that can be read from and written to arbitrarily.
-
ReadOnlyBuffer
¶ A buffer that can only be read from, distinct from
ConstantBuffer
.
-
ReadWriteBuffer
¶ A buffer that can be read from and written to arbitrarily.
-
InputAttachment
¶ An input attachment for reading from the target currently being written.
-
-
class
renderdoc.
ShaderBuiltin
Annotates a particular built-in input or output from a shader with a special meaning to the hardware or API.
Some of the built-in inputs or outputs can be declared multiple times in arrays or otherwise indexed to apply to multiple related things - see
ClipDistance
,CullDistance
andColorOutput
.-
Undefined
¶ Undefined built-in or no built-in is attached to this shader variable.
-
Position
¶ As an output from the final vertex processing shader stage, this feeds the vertex position to the rasterized. As an input to the pixel shader stage this receives the position from the rasterizer.
-
PointSize
¶ An output that controls the size of point primitives.
-
ClipDistance
¶ An output for the distance to a user-defined clipping plane. Any pixel with an interpolated value that is negative will not be rasterized. Typically there can be more than one such output.
-
CullDistance
¶ An output for the distance to a user-defined culling plane. Any primitive with all vertices having negative values will not be rasterized. Typically there can be more than one such output.
-
RTIndex
¶ An output for selecting the render target index in an array to render to. Available in geometry shaders and possibly earlier stages depending on hardware/API capability.
-
ViewportIndex
¶ An output for selecting the viewport index to render to. Available in geometry shaders and possibly earlier stages depending on hardware/API capability.
-
VertexIndex
¶ An input to the vertex shader listing the vertex index. The exact meaning of this index can vary by API but generally it refers to either a 0-based counter for non-indexed draws, or the index value for indexed draws. It may or may not be affected by offsets, depending on API semantics.
-
PrimitiveIndex
¶ A built-in indicating which primitive is being processed. This can be read by all primitive stages after the vertex shader, and written by the geometry shader.
-
InstanceIndex
¶ This built-in is defined similar to
VertexIndex
but for instances within an instanced drawcall. It counts from 0 and as withVertexIndex
it may or may not be affected by drawcall offsets.
-
DispatchSize
¶ An input in compute shaders that gives the number of workgroups executed by the dispatch call.
-
DispatchThreadIndex
¶ An input in compute shaders giving a 3D shared index across all workgroups, such that the index varies across each thread in the workgroup up to its size, then the indices for workgroup
(0,0,1)
begin adjacent to where workgroup(0,0,0)
ended.This is related to
GroupThreadIndex
andGroupIndex
.
-
GroupIndex
¶ An input in compute shaders giving a 3D index of this current workgroup amongst all workgroups, up to the dispatch size.
The index is constant across all threads in the workgroup.
This is related to
GroupThreadIndex
andDispatchThreadIndex
.
-
GroupFlatIndex
¶ An input in compute shaders giving a flat 1D index of the thread within the current workgroup. This index increments first in the
X
dimension, then in theY
dimension, then in theZ
dimension.
-
GroupThreadIndex
¶ An input in compute shaders giving a 3D index of this thread within its workgroup, up to the workgroup size.
The input does not vary between one thread in a workgroup and the same thread in another workgroup.
This is related to
GroupIndex
andDispatchThreadIndex
.
-
GSInstanceIndex
¶ An input to the geometry shader giving the instance being run, if the geometry shader was setup to be invoked multiple times for each input primitive.
-
OutputControlPointIndex
¶ An input to the tessellation control or hull shader giving the output control point index or patch vertex being operated on.
-
DomainLocation
¶ An input to the tessellation evaluation or domain shader, giving the normalised location on the output patch where evaluation is occuring. E.g. for triangle output this is the barycentric co-ordinates of the output vertex.
-
IsFrontFace
¶ An input to the pixel shader indicating whether or not the contributing triangle was considered front-facing or not according to the API setup for winding order and backface orientation.
-
MSAACoverage
¶ An input or an output from the pixel shader. As an input, it specifies a bitmask of which samples in a pixel were covered by the rasterizer. As an output, it specifies which samples in the destination target should be updated.
-
MSAASamplePosition
¶ An input to the pixel shader that contains the location of the current sample relative to the pixel, when running the pixel shader at sample frequency.
-
MSAASampleIndex
¶ An input to the pixel shader that indicates which sample in the range
0 .. N-1
is currently being processed.
-
PatchNumVertices
¶ An input to the tessellation stages, this gives the number of vertices in each patch.
-
OuterTessFactor
¶ An output from the tessellation control or hull shader, this determines the level to which the outer edge of each primitive is tessellated by the fixed-function tessellator.
It is also available for reading in the tessellation evaluation or domain shader.
-
InsideTessFactor
¶ Related to
OuterTessFactor
this functions in the same way to determine the tessellation level inside the primitive.
-
ColorOutput
¶ An output from the pixel shader, this determines the color value written to the corresponding target. There will be as many color output built-ins as there are targets bound.
-
DepthOutput
¶ An output from the pixel shader, writes the depth of this pixel with no restrictions.
Related to
DepthOutputGreaterEqual
andDepthOutputLessEqual
.
-
DepthOutputGreaterEqual
¶ An output from the pixel shader, writes the depth of this pixel with the restriction that it will be greater than or equal to the original depth produced by the rasterizer.
Related to
DepthOutput
andDepthOutputLessEqual
.
-
DepthOutputLessEqual
¶ An output from the pixel shader, writes the depth of this pixel with the restriction that it will be less than or equal to the original depth produced by the rasterizer.
Related to
DepthOutputGreaterEqual
andDepthOutput
.
-
BaseVertex
¶ The first vertex processed in this draw, as specified by the
firstVertex
/baseVertex
parameter to the draw call.
-
BaseInstance
¶ The first instance processed in this draw call, as specified by the
firstInstance
parameter.
-
DrawIndex
¶ For indirect or multi-draw commands, the index of this draw call within the overall draw command.
-
StencilReference
¶ The stencil reference to be used for stenciling operations on this fragment.
-
PointCoord
¶ The fragments co-ordinates within a point primitive being rasterized.
-
IsHelper
¶ Indicates if the current invocation is a helper invocation.
-
SubgroupSize
¶ The number of invocations in a subgroup.
-
NumSubgroups
¶ The number of subgroups in the local workgroup.
-
SubgroupIndexInWorkgroup
¶ The index of the current subgroup within all subgroups in the workgroup, up to
NumSubgroups
- 1.
-
IndexInSubgroup
¶ The index of the current thread in the current subgroup, up to
SubgroupSize
- 1.
-
SubgroupEqualMask
¶ A bitmask where the bit corresponding to
IndexInSubgroup
is set.
-
SubgroupGreaterEqualMask
¶ A bitmask where all bits greater or equal to the one corresponding to
IndexInSubgroup
are set.
-
SubgroupGreaterMask
¶ A bitmask where all bits greater than the one corresponding to
IndexInSubgroup
are set.
-
SubgroupLessEqualMask
¶ A bitmask where all bits less or equal to the one corresponding to
IndexInSubgroup
are set.
-
SubgroupLessMask
¶ A bitmask where all bits less than the one corresponding to
IndexInSubgroup
are set.
-
DeviceIndex
¶ The device index executing the shader, relative to the current device group.
-
IsFullyCovered
¶ Indicates if the current fragment area is fully covered by the generating primitive.
-
FragAreaSize
¶ Gives the dimensions of the area that the fragment covers.
-
FragInvocationCount
¶ Gives the maximum number of invocations for the fragment being covered.
-
-
class
renderdoc.
ReplayOutputType
The type of
ReplayOutput
to create-
Headless
¶ A headless output that does nothing to display to windows but can still be controlled and queried the same way
-
Texture
¶ An output that is used for displaying textures, thumbnails and pixel context
-
Mesh
¶ An output that will display mesh data previews
-
-
class
renderdoc.
MeshDataStage
Describes a particular stage in the geometry transformation pipeline.
-
Unknown
¶ Unknown or invalid stage.
-
VSIn
¶ The inputs to the vertex shader described by the explicit API vertex input bindings.
-
VSOut
¶ The outputs from the vertex shader corresponding one-to-one to the input elements.
-
GSOut
¶ The final output from the last stage in the pipeline, be that tessellation or geometry shader.
This has possibly been expanded/multiplied from the inputs
-
-
class
renderdoc.
DebugOverlay
The type of overlay image to render on top of an existing texture view, for debugging purposes.
In overlays that refer to the ‘current pass’, for any API that does not have an explicit notion of a render pass, it is defined as all previous drawcalls that render to the same set of render targets. Note that this is defined independently from any marker regions.
See the documentation for this feature.
-
NoOverlay
¶ No overlay should be rendered.
-
Drawcall
¶ An overlay highlighting the area rasterized by the drawcall on screen, no matter what tests or processes may be discarding the pixels actually rendered.
The rest of the image should be dimmed slightly to make the draw on screen clearer.
-
Wireframe
¶ Similar to the
Drawcall
overlay, this should render over the top of the image, but showing the wireframe of the object instead of a solid render.
-
Depth
¶ This overlay shows pixels from the object that passed all depth tests in green, and pixels that failed any depth test in red.
If some pixel is overwritten more than once by the object, if any of the samples passed the result will be green (i.e. the failure overlay is conservative).
-
Stencil
¶ This overlay shows pixels from the object that passed all stencil tests in green, and pixels that failed any stencil test in red.
If some pixel is overwritten more than once by the object, if any of the samples passed the result will be green (i.e. the failure overlay is conservative).
-
BackfaceCull
¶ This overlay shows pixels from the object that passed backface culling in green, and pixels that were backface culled in red.
If some pixel is overwritten more than once by the object, if any of the samples passed the result will be green (i.e. the failure overlay is conservative).
-
ViewportScissor
¶ This overlay shows a rectangle on screen corresponding to both the current viewport, and if enabled the current scissor as well.
-
NaN
¶ This overlay renders the image in greyscale using a simple luminosity calculation, then highlights any pixels that are
NaN
in red, any that are positive or negative infinity in green, and any that are negative in blue.
-
Clipping
¶ This overlay renders the image in greyscale using a simple luminosity calculation, then highlights any pixels that are currently above the white point in green and any pixels that are below the black point in red.
This is relative to the current black and white points used to display the texture.
-
ClearBeforePass
¶ This overlay clears the bound render targets before the current pass, allowing you to see only the contribution from the current pass.
Note only color targets are cleared, depth-stencil targets are unchanged so any depth or stencil tests will still pass or fail in the same way.
-
ClearBeforeDraw
¶ This is the same as the
ClearBeforePass
overlay, except it clears before the current drawcall, not the current pass.
-
QuadOverdrawPass
¶ This overlay shows pixel overdraw using 2x2 rasterized quad granularity instead of single-pixel overdraw. This represents the number of times the pixel shader was invoked along triangle edges even if each pixel is only overdrawn once.
The overlay accounts for all draws in the current pass.
-
QuadOverdrawDraw
¶ This is the same as the
QuadOverdrawPass
overlay, except it only shows the overdraw for the current drawcall, not the current pass.
-
TriangleSizePass
¶ This overlay shows the size of each triangle, starting from triangles with area
16 (4x4)
and above at the lower end to triangles with area0.125 (1/8th pixel)
at the upper end.The overlay accounts for all draws in the current pass.
-
TriangleSizeDraw
¶ This is similar to the
TriangleSizePass
overlay, except it only shows the triangle size for the current drawcall, not the current pass.
-
-
class
renderdoc.
FileType
The format of an image file
-
DDS
¶ A DDS file
-
PNG
¶ A PNG file
-
JPG
¶ A JPG file
-
BMP
¶ A BMP file
-
TGA
¶ A TGA file
-
HDR
¶ An HDR file
-
EXR
¶ An EXR file
-
RAW
¶ Raw data, just the bytes of the image tightly packed with no metadata or compression/encoding
-
-
class
renderdoc.
AlphaMapping
What to do with the alpha channel from a texture while saving out to a file.
-
Discard
¶ Completely discard the alpha channel and only write RGB t othe file.
-
BlendToColor
¶ Blend to the primary background color using alpha.
-
BlendToCheckerboard
¶ Blend to a checkerboard pattern with the primary and secondary background colors.
-
Preserve
¶ Preserve the alpha channel and save it to the file by itself.
This is only valid for file formats that support alpha channels.
-
-
class
renderdoc.
ResourceFormatType
A resource format’s particular type. This accounts for either block-compressed textures or formats that don’t have equal byte-multiple sizes for each channel.
-
Regular
¶ This format has no special layout, so its format is described by a number of components, a
CompType
and a byte width per component.
-
Undefined
¶ This format is undefined or unknown, or does not map to any known regular format.
-
BC1
¶ A block-compressed texture in
BC1
format (RGB with 1-bit alpha, 0.5 bytes per pixel)Formerly known as
DXT1
, commonly used for color maps.
-
BC2
¶ A block-compressed texture in
BC2
format (RGB with 4-bit alpha, 1 byte per pixel)Formerly known as
DXT3
, rarely used.
-
BC3
¶ A block-compressed texture in
BC3
format (RGBA, 1 byte per pixel)Formerly known as
DXT5
, commonly used for color + alpha maps, or color with attached single channel data.
-
BC4
¶ A block-compressed texture in
BC4
format (Single channel, 0.5 bytes per pixel)Commonly used for single component data such as gloss or height data.
-
BC5
¶ A block-compressed texture in
BC5
format (Two channels, 1 byte per pixel)Commonly used for normal maps.
-
BC6
¶ A block-compressed texture in
BC6
format (RGB floating point, 1 byte per pixel)Commonly used for HDR data of all kinds.
-
BC7
¶ A block-compressed texture in
BC7
format (RGB or RGBA, 1 byte per pixel)Commonly used for high quality color maps, with or without alpha.
-
ETC2
¶ A block-compressed texture in
ETC2
format (RGB with 1-bit alpha, 0.5 bytes per pixel)Commonly used on mobile or embedded platforms.
Note that the mode added in
EAC
with 1 byte per pixel and full 8-bit alpha is grouped asEAC
, with a component count of 4. SeeEAC
.
-
EAC
¶ A block-compressed texture in
EAC
format, expanded fromETC2
.Commonly used on mobile or embedded platforms.
The single and dual channel formats encode 11-bit data with 0.5 bytes per channel (so the single channel format is 0.5 bytes per pixel total, and the dual channel format is 1 byte per pixel total). The four channel format is encoded similarly to ETC2 for the base RGB data and similarly to the single channel format for the alpha, giving 1 byte per pixel total. See
ETC2
.
-
ASTC
¶ A block-compressed texture in
ASTC
format (Representation varies a lot)The ASTC format encodes each block as 16 bytes, but the block size can vary from 4x4 (so 1 byte per pixel) up to 12x12 (0.11 bytes per pixel).
Each block can encode between one and three channels of data, either correlated or uncorrelated, in low or high dynamic range.
Commonly used on mobile or embedded platforms.
-
R10G10B10A2
¶ Each pixel is stored in 32 bits. Red, green and blue are stored in 10-bits each and alpha in 2 bits. The data can either be
unsigned normalised
orunsigned integer
.
-
R11G11B10
¶ Each pixel is stored in 32 bits. Red and green are stored as an 11-bit float with no sign bit, 5-bit exponent and 6-bit mantissa. Blue is stored with 5-bit exponent and 5-bit mantissa.
-
R5G6B5
¶ Each pixel is stored in 16 bits. Red and blue are stored as 5 bits, and green is stored as six. The data is
unsigned normalised
.
-
R5G5B5A1
¶ Each pixel is stored in 16 bits. Red, green, and blue are stored as 5 bits, with 1-bit alpha. The data is
unsigned normalised
.
-
R9G9B9E5
¶ Each pixel is stored in 32 bits. Red, green, and blue are stored with individual 9-bit mantissas and a shared 5-bit exponent. There are no sign bits.
-
R4G4B4A4
¶ Each pixel is stored in 16 bits. Red, green, blue, and alpha are stored as 4-bit
unsigned normalised
values.
-
R4G4
¶ Each pixel is stored in 8 bits. Red and green are stored as 4-bit
unsigned normalised
values.
-
D16S8
¶ Each pixel is considered a packed depth-stencil value with 16 bit normalised depth and 8 bit stencil.
-
D24S8
¶ Each pixel is considered a packed depth-stencil value with 24 bit normalised depth and 8 bit stencil.
-
D32S8
¶ Each pixel is considered a packed depth-stencil value with 32 bit floating point depth and 8 bit stencil.
-
S8
¶ Each pixel is an 8 bit stencil value.
-
YUV8
¶ The pixel data is 8-bit in YUV subsampled format. More information about subsampling setup is stored separately
-
YUV10
¶ The pixel data is 10-bit in YUV subsampled format. More information about subsampling setup is stored separately
-
YUV12
¶ The pixel data is 12-bit in YUV subsampled format. More information about subsampling setup is stored separately
-
YUV16
¶ The pixel data is 16-bit in YUV subsampled format. More information about subsampling setup is stored separately
-
PVRTC
¶ PowerVR properitary texture compression format.
-
A8
¶ 8-bit unsigned normalised alpha - equivalent to standard R8 with a pre-baked swizzle.
-
-
class
renderdoc.
QualityHint
An API specific hint for a certain behaviour. A legacy concept in OpenGL that controls hints to the implementation where there is room for interpretation within the range of valid behaviour.
-
DontCare
¶ The hinted behaviour can follow any valid path as the implementation decides.
-
Nicest
¶ The hinted behaviour should follow the most correct or highest quality path.
-
Fastest
¶ The hinted behaviour should follow the most efficient path.
-
-
class
renderdoc.
GPUVendor
Identifies a GPU vendor.
-
Unknown
¶ A GPU from an unknown vendor
-
ARM
¶ An ARM GPU
-
AMD
¶ An AMD GPU
-
Broadcom
¶ A Broadcom GPU
-
Imagination
¶ An Imagination GPU
-
Intel
¶ An Intel GPU
-
nVidia
¶ An nVidia GPU
-
Qualcomm
¶ A Qualcomm GPU
-
Verisilicon
¶ A Verisilicon or Vivante GPU
-
Software
¶ A software-rendering emulated GPU
-
-
class
renderdoc.
GraphicsAPI
Identifies a Graphics API.
-
D3D11
¶ Direct3D 11.
-
D3D12
¶ Direct3D 12.
-
OpenGL
¶ OpenGL.
-
Vulkan
¶ Vulkan.
-
-
class
renderdoc.
ShaderEncoding
Identifies a shader encoding used to pass shader code to an API.
-
Unknown
¶ Unknown or unprocessable format.
-
DXBC
¶ DXBC binary shader, used by D3D11 and D3D12.
-
GLSL
¶ GLSL in string format, used by OpenGL.
-
SPIRV
¶ SPIR-V binary shader, used by Vulkan and with an extension by OpenGL.
-
SPIRVAsm
¶ Canonical SPIR-V assembly form, used (indirectly via
SPIRV
) by Vulkan and with an extension by OpenGL.
-
HLSL
¶ HLSL in string format, used by D3D11, D3D12, and Vulkan/GL via compilation to SPIR-V.
-
-
class
renderdoc.
Topology
A primitive topology used for processing vertex data.
-
Unknown
¶ An unknown or undefined topology.
-
PointList
¶ A point list.
-
LineList
¶ A line list.
-
LineStrip
¶ A line strip.
-
LineLoop
¶ A line loop.
-
TriangleList
¶ A triangle list.
-
TriangleStrip
¶ A triangle strip.
-
TriangleFan
¶ A triangle fan.
-
LineList_Adj
¶ A line list with adjacency information.
-
LineStrip_Adj
¶ A line strip with adjacency information.
-
TriangleList_Adj
¶ A triangle list with adjacency information.
-
TriangleStrip_Adj
¶ A triangle strip with adjacency information.
-
PatchList
¶ An alias for
PatchList_1CPs
.
-
PatchList_1CPs
¶ A patch list with 1 control points.
-
PatchList_2CPs
¶ A patch list with 2 control points.
-
PatchList_3CPs
¶ A patch list with 3 control points.
-
PatchList_4CPs
¶ A patch list with 4 control points.
-
PatchList_5CPs
¶ A patch list with 5 control points.
-
PatchList_6CPs
¶ A patch list with 6 control points.
-
PatchList_7CPs
¶ A patch list with 7 control points.
-
PatchList_8CPs
¶ A patch list with 8 control points.
-
PatchList_9CPs
¶ A patch list with 9 control points.
-
PatchList_10CPs
¶ A patch list with 10 control points.
-
PatchList_11CPs
¶ A patch list with 11 control points.
-
PatchList_12CPs
¶ A patch list with 12 control points.
-
PatchList_13CPs
¶ A patch list with 13 control points.
-
PatchList_14CPs
¶ A patch list with 14 control points.
-
PatchList_15CPs
¶ A patch list with 15 control points.
-
PatchList_16CPs
¶ A patch list with 16 control points.
-
PatchList_17CPs
¶ A patch list with 17 control points.
-
PatchList_18CPs
¶ A patch list with 18 control points.
-
PatchList_19CPs
¶ A patch list with 19 control points.
-
PatchList_20CPs
¶ A patch list with 20 control points.
-
PatchList_21CPs
¶ A patch list with 21 control points.
-
PatchList_22CPs
¶ A patch list with 22 control points.
-
PatchList_23CPs
¶ A patch list with 23 control points.
-
PatchList_24CPs
¶ A patch list with 24 control points.
-
PatchList_25CPs
¶ A patch list with 25 control points.
-
PatchList_26CPs
¶ A patch list with 26 control points.
-
PatchList_27CPs
¶ A patch list with 27 control points.
-
PatchList_28CPs
¶ A patch list with 28 control points.
-
PatchList_29CPs
¶ A patch list with 29 control points.
-
PatchList_30CPs
¶ A patch list with 30 control points.
-
PatchList_31CPs
¶ A patch list with 31 control points.
-
PatchList_32CPs
¶ A patch list with 32 control points.
-
-
class
renderdoc.
ShaderStage
The stage in a pipeline where a shader runs
-
Vertex
¶ The vertex shader.
-
Hull
¶ The hull shader. See also
Tess_Control
.
-
Geometry
¶ The geometry shader.
-
Compute
¶ The compute shader.
-
-
class
renderdoc.
MessageCategory
The type of issue that a debug message is about.
-
Application_Defined
¶ This message was generated by the application.
-
Miscellaneous
¶ This message doesn’t fall into any other pre-defined category.
-
Initialization
¶ This message is about initialisation or creation of objects.
-
Cleanup
¶ This message is about cleanup, destruction or shutdown of objects.
-
Compilation
¶ This message is about compilation of shaders.
-
State_Creation
¶ This message is about creating unified state objects.
-
State_Setting
¶ This message is about changing current pipeline state.
-
State_Getting
¶ This message is about fetching or retrieving current pipeline state.
-
Resource_Manipulation
¶ This message is about updating or changing a resource’s properties or contents.
-
Execution
¶ This message is about performing work.
-
Shaders
¶ This message is about the use, syntax, binding or linkage of shaders.
-
Deprecated
¶ This message is about the use of deprecated functionality.
-
Undefined
¶ This message is about the use of undefined behaviour.
-
Portability
¶ This message is about behaviour that could be or is not portable between different environments.
-
Performance
¶ This message is about performance problems or pitfalls.
-
-
class
renderdoc.
MessageSeverity
How serious a debug message is
-
High
¶ This message is very serious, indicating a guaranteed problem or major flaw.
-
Medium
¶ This message is somewhat serious, indicating a problem that should be addressed or investigated.
-
Low
¶ This message is not very serious. This indicates something that might indicate a problem.
-
Info
¶ This message is not about a problem but is purely informational.
-
-
class
renderdoc.
MessageSource
Where a debug message was reported from
-
API
¶ This message comes from the API’s debugging or validation layers.
-
RedundantAPIUse
¶ This message comes from detecting redundant API calls - calls with no side-effect or purpose, e.g. setting state that is already set.
-
IncorrectAPIUse
¶ This message comes from detecting incorrect use of the API.
-
GeneralPerformance
¶ This message comes from detecting general performance problems that are not hardware or platform specific.
-
GCNPerformance
¶ This message comes from detecting patterns that will cause performance problems on GCN-based hardware.
-
RuntimeWarning
¶ This message comes not from inspecting the log but something detected at runtime while in use, for example exceptions generated during shader debugging.
-
UnsupportedConfiguration
¶ This message comes from replaying a capture in an environment with insufficient capability to accurately reproduce the API work. Either this means the replay will be wrong, or it may be that depending on the exact API work some inaccuracies might happen.
-
-
class
renderdoc.
ResourceUsage
How a resource is being used in the pipeline at a particular point.
Note that a resource may be used for more than one thing in one event, see
EventUsage
.-
Unused
¶ The resource is not being used.
-
VertexBuffer
¶ The resource is being used as a fixed-function vertex buffer input.
-
IndexBuffer
¶ The resource is being used as an index buffer.
-
VS_Constants
¶ The resource is being used for constants in the
vertex shader
.
-
HS_Constants
¶ The resource is being used for constants in the tessellation control or
hull shader
.
-
DS_Constants
¶ The resource is being used for constants in the tessellation evaluation or
domain shader
.
-
GS_Constants
¶ The resource is being used for constants in the
geometry shader
.
-
PS_Constants
¶ The resource is being used for constants in the
pixel shader
.
-
CS_Constants
¶ The resource is being used for constants in the
compute shader
.
-
All_Constants
¶ The resource is being used for constants in all shader stages.
-
StreamOut
¶ The resource is being used for stream out/transform feedback storage after geometry processing.
-
VS_Resource
¶ The resource is being used as a read-only resource in the
vertex shader
.
-
HS_Resource
¶ The resource is being used as a read-only resource in the tessellation control or
hull shader
.
-
DS_Resource
¶ The resource is being used as a read-only resource in the tessellation evaluation or
domain shader
.
-
GS_Resource
¶ The resource is being used as a read-only resource in the
geometry shader
.
-
PS_Resource
¶ The resource is being used as a read-only resource in the
pixel shader
.
-
CS_Resource
¶ The resource is being used as a read-only resource in the
compute shader
.
-
All_Resource
¶ The resource is being used as a read-only resource in all shader stages.
-
VS_RWResource
¶ The resource is being used as a read-write resource in the
vertex shader
.
-
HS_RWResource
¶ The resource is being used as a read-write resource in the tessellation control or
hull shader
.
-
DS_RWResource
¶ The resource is being used as a read-write resource in the tessellation evaluation or
domain shader
.
-
GS_RWResource
¶ The resource is being used as a read-write resource in the
geometry shader
.
-
PS_RWResource
¶ The resource is being used as a read-write resource in the
pixel shader
.
-
CS_RWResource
¶ The resource is being used as a read-write resource in the
compute shader
.
-
All_RWResource
¶ The resource is being used as a read-write resource in all shader stages.
-
InputTarget
¶ The resource is being read as an input target for reading from the target currently being written.
-
ColorTarget
¶ The resource is being written to as a color output.
-
DepthStencilTarget
¶ The resource is being written to and tested against as a depth-stencil output.
-
Indirect
¶ The resource is being used for indirect arguments.
-
Clear
¶ The resource is being cleared
-
GenMips
¶ The resource is having mips generated for it.
-
Resolve
¶ The resource is being resolved or blitted, as both source and destination.
-
ResolveSrc
¶ The resource is being resolved or blitted from.
-
ResolveDst
¶ The resource is being resolved or blitted to.
-
Copy
¶ The resource is being copied, as both source and destination.
-
CopySrc
¶ The resource is being copied from.
-
CopyDst
¶ The resource is being copied to.
-
Barrier
¶ The resource is being specified in a barrier, as defined in Vulkan or Direct3D 12.
-
-
class
renderdoc.
SolidShade
What kind of solid shading to use when rendering a mesh.
-
NoSolid
¶ No solid shading should be done.
-
Solid
¶ The mesh should be rendered in a single flat unshaded color.
-
Lit
¶ The mesh should be rendered with face normals generated on the primitives and used for lighting.
-
Secondary
¶ The mesh should be rendered using the secondary element as color.
-
-
class
renderdoc.
FillMode
The fill mode for polygons.
-
Solid
¶ Polygons are filled in and rasterized solidly.
-
Wireframe
¶ Polygons are rendered only with lines along their edges, forming a wireframe.
-
Point
¶ Only the points at the polygons vertices are rendered.
-
-
class
renderdoc.
CullMode
The culling mode for polygons.
-
NoCull
¶ No polygon culling is performed.
-
Front
¶ Front-facing polygons are culled.
-
Back
¶ Back-facing polygons are culled.
-
FrontAndBack
¶ Both front-facing and back-facing polygons are culled.
-
-
class
renderdoc.
ConservativeRaster
The conservative rasterization mode.
-
Disabled
¶ No conservative rasterization, the default rasterization coverage algorithm is used.
-
Underestimate
¶ Fragments will only be generated if the primitive full covers all parts of the pixel, including edges and corners.
-
Overestimate
¶ Fragments will be generated if the primitive covers any part of the pixel, including edges and corners.
-
-
class
renderdoc.
LineRaster
The line rasterization mode.
-
Default
¶ Default line rasterization mode as defined by the API specification.
-
Rectangular
¶ Lines are rasterized as rectangles extruded from the line.
-
Bresenham
¶ Lines are rasterized according to the bresenham line algorithm.
-
RectangularSmooth
¶ Lines are rasterized as rectangles extruded from the line with coverage falloff.
-
-
class
renderdoc.
FilterMode
The texture filtering mode for a given direction (minification, magnification, or between mips).
-
NoFilter
¶ No filtering - this direction is disabled or there is no sampler.
-
Point
¶ Point or nearest filtering - the closest pixel or mip level to the sample location is used.
-
Linear
¶ Linear filtering - a linear interpolation happens between the pixels or mips on either side of the sample location in each direction.
-
Cubic
¶ Similar to linear filtering but with a cubic curve used for interpolation instead of linear.
-
Anisotropic
¶ This sampler is using anisotropic filtering.
-
-
class
renderdoc.
FilterFunction
The function used to process the returned value after interpolation.
-
Normal
¶ No special processing is used, the value is returned directly to the shader.
-
Comparison
¶ The value from interpolation is compared to a reference value and the comparison result is returned to the shader.
-
Minimum
¶ Instead of interpolating between sample points to retrieve an interpolated value, a min filter is used instead to find the minimum sample value.
Texels that were weight to 0 during interpolation are not included in the min function.
-
Maximum
¶ Instead of interpolating between sample points to retrieve an interpolated value, a max filter is used instead to find the maximum sample value.
Texels that were weight to 0 during interpolation are not included in the max function.
-
-
class
renderdoc.
CompareFunction
A comparison function to return a
bool
result from two inputsA
andB
.-
Never
¶ False
-
AlwaysTrue
¶ True
-
Less
¶ A < B
-
LessEqual
¶ A <= B
-
Greater
¶ A > B
-
GreaterEqual
¶ A >= B
-
Equal
¶ A == B
-
NotEqual
¶ A != B
-
-
class
renderdoc.
StencilOperation
A stencil operation to apply in stencil processing.
-
Keep
¶ Keep the existing value unmodified.
-
Zero
¶ Set the value to
0
.
-
Replace
¶ Replace the value with the stencil reference value.
-
IncSat
¶ Increment the value but saturate at the maximum representable value (typically
255
).
-
DecSat
¶ Decrement the value but saturate at
0
.
-
IncWrap
¶ Increment the value and wrap at the maximum representable value (typically
255
) to0
.
-
DecWrap
¶ Decrement the value and wrap at
0
to the maximum representable value (typically255
).
-
Invert
¶ Invert the bits in the stencil value (bitwise
NOT
).
-
-
class
renderdoc.
BlendMultiplier
A multiplier on one component in the blend equation.
Note
The “source” value is the value written out by the shader.
The “second source” value is provided when dual source blending is used.
The “destination” value is the value in the target being blended to.
These values are combined using a given blend operation, see
BlendOperation
.Where a color is referenced, the value depends on where the multiplier appears in the blend equation. If it is a multiplier on the color component then it refers to the color component. If it is a multiplier on the alpha component then it refers to the alpha component.
If alpha is referenced explicitly it always refers to alpha, in both color and alpha equations.
-
Zero
¶ The literal value
0.0
.
-
One
¶ The literal value
1.0
.
-
SrcCol
¶ The source value’s color.
-
InvSrcCol
¶ 1.0
minus the source value’s color.
-
DstCol
¶ The destination value’s color.
-
InvDstCol
¶ 1.0
minus the destination value’s color.
-
SrcAlpha
¶ The source value’s alpha.
-
InvSrcAlpha
¶ 1.0
minus the source value’s alpha.
-
DstAlpha
¶ The destination value’s alpha.
-
InvDstAlpha
¶ 1.0
minus the destination value’s alpha.
-
SrcAlphaSat
¶ The lowest value of
SrcAlpha
andInvDstAlpha
. If used in the alpha equation, it takes the valueOne
.
-
FactorRGB
¶ The color components of the fixed blend factor constant.
-
InvFactorRGB
¶ 1.0
minus the color components of the fixed blend factor constant.
-
FactorAlpha
¶ The alpha component of the fixed blend factor constant.
-
InvFactorAlpha
¶ 1.0
minus the alpha components of the fixed blend factor constant.
-
Src1Col
¶ The second source value’s color.
-
InvSrc1Col
¶ 1.0
minus the second source value’s color.
-
Src1Alpha
¶ The second source value’s alpha.
-
InvSrc1Alpha
¶ 1.0
minus the second source value’s alpha.
-
-
class
renderdoc.
BlendOperation
A blending operation to apply in color blending.
Note
The “source” value is the value written out by the shader.
The “destination” value is the value in the target being blended to.
These values are multiplied by a given blend factor, see
BlendMultiplier
.-
Add
¶ Add the two values being processed together.
-
Subtract
¶ Subtract the destination value from the source value.
-
ReversedSubtract
¶ Subtract the source value from the destination value.
-
Minimum
¶ The minimum of the source and destination value.
-
Maximum
¶ The maximum of the source and destination value.
-
-
class
renderdoc.
LogicOperation
A logical operation to apply when writing texture values to an output.
Note
The “source” value is the value written out by the shader.
The “destination” value is the value in the target being written to.
-
NoOp
¶ No operation is performed, the destination is unmodified.
-
Clear
¶ A
0
in every bit.
-
Set
¶ A
1
in every bit.
-
Copy
¶ The contents of the source value.
-
CopyInverted
¶ The contents of the source value are bitwise inverted.
-
Invert
¶ The contents of the destination value are bitwise inverted, then written.
-
And
¶ The source and destination values are combined with the bitwise
AND
operator.
-
Nand
¶ The source and destination values are combined with the bitwise
NAND
operator.
-
Or
¶ The source and destination values are combined with the bitwise
OR
operator.
-
Xor
¶ The source and destination values are combined with the bitwise
XOR
operator.
-
Nor
¶ The source and destination values are combined with the bitwise
NOR
operator.
-
Equivalent
¶ The source and destination values are combined with the logical equivalence operator, defined as
NOT (s XOR d)
.
-
AndReverse
¶ The source and inverted destination values are combined with the bitwise
AND
operator - i.e.s AND (NOT d)
.
-
AndInverted
¶ The inverted source and destination values are combined with the bitwise
AND
operator - i.e.(NOT s) AND d
.
-
OrReverse
¶ The source and inverted destination values are combined with the bitwise
OR
operator - i.e.s OR (NOT d)
.
-
OrInverted
¶ The inverted source and destination values are combined with the bitwise
OR
operator - i.e.(NOT s) OR d
.
-
-
class
renderdoc.
GPUCounter
Pre-defined GPU counters that can be supported by a given implementation.
GPU counters actually available can be queried by
ReplayController.EnumerateCounters()
. If any in this list are supported they will be returned with these counter IDs. More counters may be enumerated with IDs in the appropriate ranges.-
EventGPUDuration
¶ Time taken for this event on the GPU, as measured by delta between two GPU timestamps.
-
InputVerticesRead
¶ Number of vertices read by input assembler.
-
IAPrimitives
¶ Number of primitives read by the input assembler.
-
GSPrimitives
¶ Number of primitives output by a geometry shader.
-
RasterizerInvocations
¶ Number of primitives that were sent to the rasterizer.
-
RasterizedPrimitives
¶ Number of primitives that were rendered.
-
SamplesPassed
¶ Number of samples that passed depth/stencil test.
-
VSInvocations
¶ Number of times a
vertex shader
was invoked.
-
HSInvocations
¶ Number of times a
hull shader
was invoked.
-
TCSInvocations
¶ Number of times a
tessellation control shader
was invoked.
-
DSInvocations
¶ Number of times a
domain shader
was invoked.
-
TESInvocations
¶ Number of times a
tessellation evaluation shader
was invoked.
-
GSInvocations
¶ Number of times a
domain shader
was invoked.
-
PSInvocations
¶ Number of times a
pixel shader
was invoked.
-
FSInvocations
¶ Number of times a
fragment shader
was invoked.
-
CSInvocations
¶ Number of times a
compute shader
was invoked.
-
FirstAMD
¶ The AMD-specific counter IDs start from this value.
-
LastAMD
¶ The AMD-specific counter IDs end with this value.
-
FirstIntel
¶ The Intel-specific counter IDs start from this value.
-
LastIntel
¶ The Intel-specific counter IDs end with this value.
-
FirstNvidia
¶ The nVidia-specific counter IDs start from this value.
-
LastNvidia
¶ The nVidia-specific counter IDs end with this value.
-
-
class
renderdoc.
CounterUnit
The unit that GPU counter data is returned in.
-
Absolute
¶ The value is an absolute value and should be interpreted as unitless.
-
Seconds
¶ The value is a duration in seconds.
-
Percentage
¶ The value is a floating point percentage value between 0.0 and 1.0.
-
Ratio
¶ The value describes a ratio between two separate GPU units or counters.
-
Bytes
¶ The value is in bytes.
-
Cycles
¶ The value is a duration in clock cycles.
-
-
class
renderdoc.
CameraType
The type of camera controls for an
Camera
.-
Arcball
¶ Arcball controls that rotate and zoom around the origin point.
-
FPSLook
¶ Traditional FPS style controls with movement in each axis relative to the current look direction.
-
-
class
renderdoc.
ReplaySupport
How supported a given API is on a particular replay instance.
-
Unsupported
¶ The API is not supported.
-
Supported
¶ The API is fully supported.
-
SuggestRemote
¶ The API is supported locally but the capture indicates it was made on a different type of machine so remote replay might be desired.
-
-
class
renderdoc.
ReplayStatus
The status of a high-level replay operation such as opening a capture or connecting to a remote server.
-
Succeeded
¶ The operation succeeded.
-
UnknownError
¶ An unknown error occurred.
-
InternalError
¶ An internal error occurred indicating a bug or unexpected condition.
-
FileNotFound
¶ The specified file was not found.
-
InjectionFailed
¶ Injection or hooking into the target process failed.
-
IncompatibleProcess
¶ An incompatible process was found, e.g. a 32-bit process with 32-bit support not available.
-
NetworkIOFailed
¶ A network I/O operation failed.
-
NetworkRemoteBusy
¶ The remote side of the network connection was busy.
-
NetworkVersionMismatch
¶ The other side of the network connection was not at a compatible version.
-
FileIOFailed
¶ A filesystem I/O operation failed.
-
FileIncompatibleVersion
¶ The capture file had an incompatible version.
-
FileCorrupted
¶ The capture file is corrupted or otherwise unrecognisable.
-
ImageUnsupported
¶ The image file is recognised but the format is unsupported.
-
APIUnsupported
¶ The API used in the capture is not supported.
-
APIInitFailed
¶ The API used in the capture failed to initialise.
-
APIIncompatibleVersion
¶ The API data in the capture had an incompatible version.
-
APIHardwareUnsupported
¶ The API is not supported on the currently available hardware.
-
APIDataCorrupted
¶ While loading the capture for replay, the driver encountered corrupted or invalid serialised data.
-
APIReplayFailed
¶ The API failed to replay the capture, with some runtime error that couldn’t be determined until the replay began.
-
AndroidGrantPermissionsFailed
¶ Failed to grant runtime permissions when installing Android remote server.
-
AndroidABINotFound
¶ Couldn’t determine supported ABIs when installing Android remote server.
-
AndroidAPKFolderNotFound
¶ Couldn’t find the folder which contains the Android remote server APK.
-
AndroidAPKInstallFailed
¶ Failed to install Android remote server for unknown reasons.
-
AndroidAPKVerifyFailed
¶ Failed to install Android remote server.
-
-
class
renderdoc.
TargetControlMessageType
The type of message received from or sent to an application target control connection.
-
Unknown
¶ No message or an unknown message type.
-
Disconnected
¶ The other end of the connection disconnected.
-
Busy
¶ The other end of the connection was busy.
-
Noop
¶ Nothing happened, the connection is being kept alive.
-
NewCapture
¶ A new capture was made.
-
CaptureCopied
¶ A capture was successfully copied across the connection.
-
RegisterAPI
¶ The target has initialised a graphics API.
-
NewChild
¶ The target has created a child process.
-
CaptureProgress
¶ Progress update on an on-going frame capture.
-
-
class
renderdoc.
EnvMod
How to modify an environment variable.
-
Set
¶ Set the variable to the given value.
-
Append
¶ Add the given value to the end of the variable, using the separator.
-
Prepend
¶ Add the given value to the start of the variable, using the separator.
-
-
class
renderdoc.
EnvSep
The separator to use if needed when modifying an environment variable.
-
Platform
¶ Use the character appropriate for separating items on the platform.
On Windows this means the semi-colon
;
character will be used, on posix systems the colon:
character will be used.
-
SemiColon
¶ Use a semi-colon
;
character.
-
Colon
¶ Use a colon
:
character.
-
NoSep
¶ No separator will be used.
-
-
class
renderdoc.
LogType
The type of a log message
-
Debug
¶ The log message is a verbose debug-only message that can be discarded in release builds.
-
Comment
¶ The log message is informational.
-
Warning
¶ The log message describes a warning that could indicate a problem or be useful in diagnostics.
-
Error
¶ The log message indicates an error was encountered.
-
Fatal
¶ The log message indicates a fatal error occurred which is impossible to recover from.
-
-
class
renderdoc.
ReplayOptimisationLevel
The level of optimisation used in
-
NoOptimisation
¶ Completely disabled, no optimisation will be used at all.
-
Conservative
¶ Optimisation is used when it doesn’t interfere with replay correctness.
-
Balanced
¶ Optimisation is used when it has minimal impact on replay correctness. This could include e.g. resources appearing cleared instead of containing contents from prior frames where those resources are written to before being read.
-
Fastest
¶ All possible optimisations are enabled as long as they do not cause invalid/incorrect replay. This could result in side-effects like data from one replay being visible early in another replay, if it’s known that the data will be overwritten before being used.
-
-
class
renderdoc.
WindowingSystem
Specifies a windowing system to use for creating an output window.
-
Unknown
¶ Unknown window type, no windowing data is passed and no native window is described.
-
Headless
¶ The windowing data doesn’t describe a real window but a virtual area, allowing all normal output rendering to happen off-screen. See
CreateHeadlessWindowingData()
.
-
Win32
¶ The windowing data refers to a Win32 window. See
CreateWin32WindowingData()
.
-
Xlib
¶ The windowing data refers to an Xlib window. See
CreateXLibWindowingData()
.
-
XCB
¶ The windowing data refers to an XCB window. See
CreateXCBWindowingData()
.
-
Wayland
¶ The windowing data refers to an Wayland window. See
CreateWaylandWindowingData()
.
-
Android
¶ The windowing data refers to an Android window. See
CreateAndroidWindowingData()
.
-
MacOS
¶ The windowing data refers to a MacOS / OS X NSView & CALayer that is Metal/GL compatible. See
CreateMacOSWindowingData()
.
-
-
class
renderdoc.
PathProperty
A set of flags describing the properties of a path on a remote filesystem.
-
NoFlags
¶ No special file properties.
-
Directory
¶ This file is a directory or folder.
-
Hidden
¶ This file is considered hidden by the filesystem.
-
Executable
¶ This file has been identified as an executable program or script.
-
ErrorUnknown
¶ A special flag indicating that a query for this file failed, but for unknown reasons.
-
ErrorAccessDenied
¶ A special flag indicating that a query for this file failed because access to the path was denied.
-
ErrorInvalidPath
¶ A special flag indicating that a query for this file failed because the path was invalid.
-
-
class
renderdoc.
SectionFlags
A set of flags describing the properties of a section in a renderdoc capture.
-
NoFlags
¶ No special section properties.
-
ASCIIStored
¶ This section was stored as pure ASCII. This can be useful since it is possible to generate an ASCII section in a text editor by hand or with any simple printf style script, and then concatenate it to a .rdc and have a valid section.
-
LZ4Compressed
¶ This section is compressed with LZ4 on disk.
-
ZstdCompressed
¶ This section is compressed with Zstd on disk.
-
-
class
renderdoc.
BufferCategory
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 drawcalls.
-
-
class
renderdoc.
D3DBufferViewFlags
A set of flags for D3D buffer view properties.
-
NoFlags
¶ The buffer will not be used for any of the uses below.
-
Raw
¶ The buffer is used as a raw (byte-addressed) buffer.
-
Append
¶ The buffer is used as a append/consume view.
-
Counter
¶ The buffer is used with a structured buffer with associated hidden counter.
-
-
class
renderdoc.
TextureCategory
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.
ShaderStageMask
A set of flags for
ShaderStage
stages-
Unknown
¶ No flags set for any shader stages.
-
Vertex
¶ The flag for
ShaderStage.Vertex
.
-
Hull
¶ The flag for
ShaderStage.Hull
.
-
Tess_Control
¶ The flag for
ShaderStage.Tess_Control
.
-
Domain
¶ The flag for
ShaderStage.Domain
.
-
Tess_Eval
¶ The flag for
ShaderStage.Tess_Eval
.
-
Geometry
¶ The flag for
ShaderStage.Geometry
.
-
Pixel
¶ The flag for
ShaderStage.Pixel
.
-
Fragment
¶ The flag for
ShaderStage.Fragment
.
-
Compute
¶ The flag for
ShaderStage.Compute
.
-
All
¶ A shorthand version with flags set for all stages together.
-
-
class
renderdoc.
ShaderEvents
A set of flags for events that may occur while debugging a shader
-
NoEvent
¶ No event has occurred.
-
SampleLoadGather
¶ A texture was sampled, loaded or gathered.
-
GeneratedNanOrInf
¶ A floating point operation generated a
NaN
orinfinity
result.
-
-
class
renderdoc.
DrawFlags
A set of flags describing the properties of a particular drawcall.
-
NoFlags
¶ The drawcall has no special properties.
-
Clear
¶ The drawcall is a clear call. See
ClearColor
andClearDepthStencil
.
-
Drawcall
¶ The drawcall renders primitives using the graphics pipeline.
-
Dispatch
¶ The drawcall issues a number of compute workgroups.
-
CmdList
¶ The drawcall calls into a previously recorded child command list.
-
SetMarker
¶ The drawcall inserts a single debugging marker.
-
PushMarker
¶ The drawcall begins a debugging marker region that has children.
-
PopMarker
¶ The drawcall ends a debugging marker region.
Note
Drawcalls with this flag will not be exposed and it is only used internally for tracking markers.
-
Present
¶ The drawcall is a presentation call that hands a swapchain image to the presentation engine.
-
MultiDraw
¶ The drawcall is a multi-draw that contains several specified child draws.
-
Copy
¶ The drawcall performs a resource copy operation.
-
Resolve
¶ The drawcall performs a resource resolve or blit operation.
-
GenMips
¶ The drawcall performs a resource mip-generation operation.
-
UseIBuffer
¶ The drawcall uses an index buffer.
-
Instanced
¶ The drawcall uses instancing. This does not mean it renders more than one instanced, simply that it uses the instancing feature.
-
Auto
¶ The drawcall interacts with stream-out to render all vertices previously written. This is a Direct3D 11 specific feature.
-
Indirect
¶ The drawcall uses a buffer on the GPU to source some or all of its parameters in an indirect way.
-
ClearColor
¶ The drawcall clears a color target.
-
ClearDepthStencil
¶ The drawcall clears a depth-stencil target.
-
BeginPass
¶ The drawcall marks the beginning of a render pass.
-
EndPass
¶ The drawcall marks the end of a render pass.
-
APICalls
¶ The drawcall does not contain any work directly, but is a ‘virtual’ draw inserted to encompass non-draw API calls that happened within a region, so they are included within the region where they occurred and not grouped into the next drawcall outside that region.
-
-
class
renderdoc.
VulkanLayerFlags
A set of flags giving details of the current status of vulkan layer registration.
-
NoFlags
¶ There are no problems with the vulkan layer registration.
-
OtherInstallsRegistered
¶ Other conflicting installs of the same layer in other locations are registered.
-
ThisInstallRegistered
¶ This current install of the layer is registered.
-
NeedElevation
¶ Fixing any issues will require elevation to system administrator privileges.
-
UserRegisterable
¶ This layer can be registered as user-local, as well as system-wide. If
NeedElevation
isn’t also set then the entire process can be done un-elevated if user-local is desired.Note
If the
NeedElevation
flag is set then elevation is required to fix the layer registration, even if a user-local registration is desired.Most commonly this situation arises if there is no other registration, or the existing one is already user-local.
-
RegisterAll
¶ All listed locations for the current layer must be registered for correct functioning.
If this flag is not set, then the listed locations are an ‘or’ list of alternatives.
-
UpdateAllowed
¶ If the current registrations can be updated or re-pointed to fix the issues.
-
Unfixable
¶ The current situation is not fixable automatically and requires user intervention/disambiguation.
-
Unsupported
¶ Vulkan is not supported by this build of RenderDoc and the layer cannot be registered.
-
-
class
renderdoc.
AndroidFlags
A set of flags giving details of the current status of Android tracability.
-
NoFlags
¶ There are no problems with the Android application setup.
-
Debuggable
¶ The application is debuggable.
-
RootAccess
¶ The device being targeted has root access.
-
MissingTools
¶ When patching, some necessary tools were not found.
-
ManifestPatchFailure
¶ When patching, modifying the manifest file to include the debuggable flag failed.
-
RepackagingAPKFailure
¶ When patching, repackaging, signing and installing the new package failed.
-
-
class
renderdoc.
FloatVecVal
A
float
4 component vector.-
w
The w component.
-
x
The x component.
-
y
The y component.
-
z
The z component.
-
-
class
renderdoc.
DoubleVecVal
A
double
4 component vector.-
w
The w component.
-
x
The x component.
-
y
The y component.
-
z
The z component.
-
-
class
renderdoc.
IntVecVal
A 32-bit signed
int
4 component vector.-
w
The w component.
-
x
The x component.
-
y
The y component.
-
z
The z component.
-
-
class
renderdoc.
UIntVecVal
A 32-bit unsigned
int
4 component vector.-
w
The w component.
-
x
The x component.
-
y
The y component.
-
z
The z component.
-
-
class
renderdoc.
PointerVal
A 64-bit pointer value with optional type information.
-
pointer
The actual pointer value itself.
-
pointerTypeID
The index into
ShaderReflection.pointerTypes
of the pointed type.
-
shader
An optional
ResourceId
identifying the shader containing the type info.
-
-
class
renderdoc.
ShaderValue
A C union that holds 16 values, with each different basic variable type.
-
d
A convenient subset of
dv
as a named 4 component vector.
-
dv
double
values.
-
f
A convenient subset of
fv
as a named 4 component vector.
-
fv
float
values.
-
i
A convenient subset of
iv
as a named 4 component vector.
-
iv
Signed integer values.
-
s64v
64-bit signed integer values.
-
u
A convenient subset of
uv
as a named 4 component vector.
-
u64v
64-bit unsigned integer values.
-
uv
Unsigned integer values.
-
-
class
renderdoc.
ShaderVariable
Holds a single named shader variable. It contains either a primitive type (up to a 4x4 matrix of a
basic type
) or a list of members, which can either be struct or array members of this parent variable.Matrices are always stored row-major. If necessary they are transposed when retrieving from the raw data bytes when they are specified to be column-major in the API/shader metadata.
-
GetPointer
() Utility function for getting a pointer value, with optional type information.
Returns: A PointerVal
with the pointer value.Return type: PointerVal
-
SetTypedPointer
(pointer, shader, pointerTypeID) Utility function for setting a pointer value with type information.
Parameters:
-
SetTypelessPointer
(pointer) Utility function for setting a pointer value with no type information.
Parameters: pointer# (int) – The actual pointer value.
-
columns
The number of columns in this matrix.
-
displayAsHex
True
if the contents of this variable should be displayed as hex.
-
isPointer
True
if this variable is a pointer.
-
isStruct
True
if this variable is a structure and not an array or basic type.
-
members
The members of this variable as a list of
ShaderVariable
.
-
name
The name of this variable.
-
rowMajor
True
if this variable is stored in rows in memory. Only relevant for matrices.
-
rows
The number of rows in this matrix.
-
type
The
basic type
of this variable.
-
value
The
contents
of this variable if it has no members.
-
-
class
renderdoc.
DebugVariableReference
A particular component of a debugging variable that a high-level variable component maps to
-
component
The component within the variable.
-
name
The name of the base debug variable.
-
type
The type of variable this is referring to.
-
-
class
renderdoc.
SourceVariableMapping
Maps the contents of a high-level source variable to one or more shader variables in a
ShaderDebugState
, with type information.A single high-level variable may be represented by multiple mappings but only along regular boundaries, typically whole vectors. For example an array may have each element in a different mapping, or a matrix may have a mapping per row. The properties such as
rows
andelements
reflect the parent object.Note
There is not necessarily a 1:1 mapping from source variable to debug variable, so this can change over time.
-
builtin
The
ShaderBuiltin
that this variable corresponds to.
-
columns
The number of columns in this variable.
-
name
The name and member of this source variable that’s being mapped from.
-
offset
The offset in the parent source variable, for struct members. Useful for sorting.
For builtin variables this can also indicate the index of the builtin (e.g. multiple color outputs).
-
rows
The number of rows in this variable - 1 for vectors, >1 for matrices.
-
type
The variable type of the source being mapped from, if the debug variable is untyped.
-
variables
The debug variables that the components of this high level variable map to. Multiple ranges could refer to the same variable if a contiguous range is mapped to - the mapping is component-by-component to greatly simplify algorithms at the expense of a small amount of storage space.
-
-
class
renderdoc.
LineColumnInfo
Details the current region of code that an instruction maps to
-
SourceEqual
(o) Returns: True
if this object is equal to the parameter, disregardingdisassemblyLine
.Return type: bool
-
colEnd
The column number (starting from 1) of the end of the code on the line specified by
lineEnd
. If set to 0, no column information is available and the whole lines should be treated as covering the code.
-
colStart
The column number (starting from 1) of the start of the code on the line specified by
lineStart
. If set to 0, no column information is available and the whole lines should be treated as covering the code.
-
disassemblyLine
The line (starting from 1) in the disassembly where this instruction is located.
-
fileIndex
The current file, as an index into the list of files for this shader.
If this is negative, no source mapping is available and only
disassemblyLine
is valid.
-
lineEnd
The ending line-number (starting from 1) of the source code.
-
lineStart
The starting line-number (starting from 1) of the source code.
-
-
class
renderdoc.
ShaderVariableChange
This stores the before and after state of a
ShaderVariable
.-
after
The value of the variable after the change. If this variable is uninitialised that means the variable stopped existing on this step.
-
before
The value of the variable before the change. If this variable is uninitialised that means the variable came into existance on this step.
-
-
class
renderdoc.
ShaderDebugState
This stores the current state of shader debugging at one particular step in the shader, with all mutable variable contents.
-
callstack
A
list
ofstr
with each function call in the current callstack at this line.The oldest/outer function is first in the list, the newest/inner function is last.
-
changes
The changes in mutable variables for this shader as a list of
ShaderVariableChange
. The change documents the bidirectional change of variables, so that a single state can be updated either forwards or backwards using the information.
-
flags
A set of
ShaderEvents
flags that indicate what events happened on this step.
-
nextInstruction
The next instruction to be executed after this state. The initial state before any shader execution happened will have
nextInstruction == 0
.
-
sourceVars
An optional list of
SourceVariableMapping
indicating which high-level source variables map to which debug variables and including extra type information.This list contains source variable mapping that is only valid at this state - it is not valid at any other state where the lifetime of the source variable may have run out, or it may now be stored in a different debug variable.
-
stepIndex
The program counter within the debug trace. The initial state will be index 0, and it will increment linearly after that regardless of loops or branching.
-
-
class
renderdoc.
ShaderDebugger
An opaque structure that has internal state for shader debugging
-
class
renderdoc.
ShaderDebugTrace
This stores the whole state of a shader’s execution from start to finish, with each individual debugging step along the way, as well as the immutable global constant values that do not change with shader execution.
-
constantBlocks
Constant buffer backed variables for this shader as a list of
ShaderVariable
.Each entry in this list corresponds to a constant block with the same index in the
ShaderBindpointMapping.constantBlocks
list, which can be used to look up the metadata.Depending on the underlying shader representation, the constant block may retain any structure or it may have been vectorised and flattened.
-
debugger
An opaque handle of
ShaderDebugger
identifying by the undelying debugger, which is used to simulate the shader and generate new debug states.If this is
None
then the trace is invalid.
-
inputs
The input variables for this shader as a list of
ShaderVariable
.
-
lineInfo
A
list
ofLineColumnInfo
detailing which source lines each instruction corresponds to
-
readOnlyResources
The read-only resource variables for this shader as a list of
ShaderVariable
.The ‘value’ of the variable is always a single unsigned integer, which is the bindpoint - an index into the
ShaderBindpointMapping.readOnlyResources
list, which can be used to look up the other metadata as well as find the binding from the pipeline state.
-
readWriteResources
The read-write resource variables for this shader as a list of
ShaderVariable
.The ‘value’ of the variable is always a single unsigned integer, which is the bindpoint - an index into the
ShaderBindpointMapping.readWriteResources
list, which can be used to look up the other metadata as well as find the binding from the pipeline state.
-
sourceVars
An optional list of
SourceVariableMapping
indicating which high-level source variables map to which debug variables and includes extra type information.This list contains source variable mapping that is valid for the lifetime of a debug trace. It may be empty if there is no source variable mapping that extends to the life of the debug trace.
-
-
class
renderdoc.
SigParameter
The information describing an input or output signature element describing the interface between shader stages.
-
NoIndex
¶ Value for an index that means it is invalid or not applicable for this parameter.
-
channelUsedMask
A bitmask indicating which components in the shader register are actually used by the shader itself, for APIs that pack signatures together.
-
compCount
The number of components used to store this element. See
compType
.
-
compType
The
component type
of data that this element stores.
-
needSemanticIndex
A convenience flag -
True
if the semantic name is unique and no index is needed.
-
regChannelMask
A bitmask indicating which components in the shader register are stored, for APIs that pack signatures together.
-
regIndex
The index of the shader register/binding used to store this signature element.
This may be
NoIndex
if the element is system-generated and not consumed by another shader stage. SeesystemValue
.
-
semanticIdxName
The combined semantic name and index.
-
semanticIndex
The semantic index of this variable - see
semanticName
.
-
semanticName
The semantic name of this variable, if the API uses semantic matching for bindings.
-
stream
Selects a stream for APIs that provide multiple output streams for the same named output.
-
systemValue
The
ShaderBuiltin
value that this element contains.
-
varName
The name of this variable - may not be present in the metadata for all APIs.
-
-
class
renderdoc.
ShaderVariableDescriptor
Describes the storage characteristics for a basic
ShaderConstant
in memory.-
arrayByteStride
The number of bytes between the start of one element in the array and the next.
-
columns
The number of columns in this matrix.
-
displayAsHex
True
if the contents of this variable should be displayed as hex.
-
displayAsRGB
True
if the contents of this variable should be displayed as RGB color (where- possible).
-
elements
The number of elements in the array, or 1 if it’s not an array.
-
matrixByteStride
The number of bytes between the start of one column/row in a matrix and the next.
-
name
The name of the type of this constant, e.g. a
struct
name.
-
pointerTypeID
The index in
ShaderReflection.pointerTypes
of the pointee type.
-
rowMajorStorage
True
if the matrix is stored as row major instead of column major.
-
rows
The number of rows in this matrix.
-
type
The
VarType
that this basic constant stores.
-
-
class
renderdoc.
ShaderVariableType
Describes the type and members of a
ShaderConstant
.-
descriptor
The
ShaderVariableDescriptor
that describes the current constant.
-
members
A list of
ShaderConstant
with any members that this constant may contain.
-
-
class
renderdoc.
ShaderConstant
Contains the detail of a constant within a
ConstantBlock
in memory.-
byteOffset
The byte offset of this constant relative to the parent structure
-
defaultValue
If this constant is no larger than a 64-bit constant, gives a default value for it.
-
name
The name of this constant
-
type
A
ShaderVariableType
giving details of the type information for this constant.
-
-
class
renderdoc.
ConstantBlock
Contains the information for a block of constant values. The values are not present, only the metadata about how the variables are stored in memory itself and their type/name information.
-
bindPoint
The bindpoint for this block. This is an index in the
ShaderBindpointMapping.constantBlocks
list.
-
bufferBacked
True
if the contents are stored in a buffer of memory. If not then they are set by some other API-specific method, such as direct function calls or they may be compile-time specialisation constants.
-
byteSize
The total number of bytes consumed by all of the constants contained in this block.
-
name
The name of this constant block, may be empty on some APIs.
-
variables
The constants contained within this block as a list of
ShaderConstant
.
-
-
class
renderdoc.
ShaderSampler
Contains the information for a separate sampler in a shader. If the API doesn’t have the concept of separate samplers, this struct will be unused and only
ShaderResource
is relevant.Note
that constant blocks will not have a shader resource entry, see
ConstantBlock
.-
bindPoint
The bindpoint for this block. This is an index in either the
ShaderBindpointMapping.samplers
list.
-
name
The name of this sampler.
-
-
class
renderdoc.
ShaderResource
Contains the information for a shader resource that is made accessible to shaders directly by means of the API resource binding system.
Note
that constant blocks and samplers will not have a shader resource entry, see
ConstantBlock
andShaderSampler
.-
bindPoint
The bindpoint for this block. This is an index in either the
ShaderBindpointMapping.readOnlyResources
list orShaderBindpointMapping.readWriteResources
list as appropriate (seeisReadOnly
).
-
isReadOnly
True
if this resource is available to the shader for reading only, otherwise it is able to be read from and written to arbitrarily.
-
isTexture
True
if this resource is a texture, otherwise it is a buffer.
-
name
The name of this resource.
-
resType
The
TextureType
that describes the type of this resource.
-
variableType
A
ShaderVariableType
describing type of each element of this resource.
-
-
class
renderdoc.
ShaderEntryPoint
Describes an entry point in a shader.
-
name
The name of the entry point.
-
stage
The
ShaderStage
for this entry point .
-
-
class
renderdoc.
ShaderCompileFlag
Contains a single flag used at compile-time on a shader.
-
name
The name of the compile flag.
-
value
The value of the compile flag.
-
-
class
renderdoc.
ShaderCompileFlags
Contains the information about the compilation environment of a shader
-
flags
A list of
ShaderCompileFlag
.Each entry is an API or compiler specific flag used to compile this shader originally.
-
-
class
renderdoc.
ShaderSourceFile
Contains a source file available in a debug-compiled shader.
-
contents
The actual contents of the file.
-
filename
The filename of this source file.
-
-
class
renderdoc.
ShaderDebugInfo
Contains the information about a shader contained within API-specific debugging information attached to the shader.
Primarily this means the embedded original source files.
-
compileFlags
A
ShaderCompileFlags
containing the flags used to compile this shader.
-
encoding
The
ShaderEncoding
of the source. Seefiles
.
-
files
A list of
ShaderSourceFile
, encoded in the form denoted byencoding
.The first entry in the list is always the file where the entry point is.
-
-
class
renderdoc.
ShaderReflection
The reflection and metadata fully describing a shader.
The information in this structure is API agnostic, and is matched up against a
ShaderBindpointMapping
instance to map the information here to the API’s binding points and resource binding scheme.-
constantBlocks
A list of
ConstantBlock
with the shader’s constant bindings.
-
debugInfo
A
ShaderDebugInfo
containing any embedded debugging information in this shader.
-
dispatchThreadsDimension
The 3D dimensions of a compute workgroup, for compute shaders.
-
encoding
The
ShaderEncoding
of this shader. SeerawBytes
.
-
entryPoint
The entry point in the shader for this reflection, if multiple entry points exist.
-
inputSignature
A list of
SigParameter
with the shader’s input signature.
-
interfaces
A list of strings with the shader’s interfaces. Largely an unused API feature.
-
outputSignature
A list of
SigParameter
with the shader’s output signature.
-
pointerTypes
A list of
ShaderVariableType
with the shader’s pointer types.
-
rawBytes
A raw
bytes
dump of the original shader, encoded in the form denoted byencoding
.
-
readOnlyResources
A list of
ShaderResource
with the shader’s read-only resources.
-
readWriteResources
A list of
ShaderResource
with the shader’s read-write resources.
-
resourceId
The
ResourceId
of this shader.
-
samplers
A list of
ShaderSampler
with the shader’s samplers.
-
stage
The
ShaderStage
that this shader corresponds to, if multiple entry points exist.
-
-
class
renderdoc.
Bindpoint
Declares the binding information for a single resource binding.
See
ShaderBindpointMapping
for how this mapping works in detail.-
arraySize
If this is an arrayed binding, the number of elements in the array.
-
bind
The binding index.
-
bindset
The binding set.
-
used
True
if the shader actually uses this resource, otherwise it’s declared but unused.
-
-
class
renderdoc.
ShaderBindpointMapping
This structure goes hand in hand with
ShaderReflection
to determine how to map from bindpoint indices in the resource lists there to API-specific binding points. ThebindPoint
member inShaderResource
orConstantBlock
refers to an index in these associated lists, which then map potentially sparsely and potentially in different orders to the appropriate API registers, indices, or slots.API specific details:
Direct3D11 - All
Bindpoint.bindset
values are 0 as D3D11 has no notion of sets, and the only namespacing that exists is by shader stage and object type. Mostly this already exists with the constant block, read only and read write resource lists.Bindpoint.arraySize
is likewise unused as D3D11 doesn’t have arrayed resource bindings.Bindpoint.bind
refers to the register/slot binding within the appropriate type (SRVs for read-only resources, UAV for read-write resources, samplers/constant buffers in each type).OpenGL - Similarly to D3D11,
Bindpoint.bindset
andBindpoint.arraySize
are unused as OpenGL does not have true binding sets or array resource binds.For OpenGL there may be many more duplicate
Bindpoint
objects as theBindpoint.bind
refers to the index in the type-specific list, which is much more granular on OpenGL. E.g.0
may refer to images, storage buffers, and atomic buffers all within thereadWriteResources
list. The index is the uniform value of the binding. Since no objects are namespaced by shader stage, the same value in two shaders refers to the same binding.Direct3D12 - Since D3D12 doesn’t have true resource arrays (they are linearised into sequential registers)
Bindpoint.arraySize
is not used.Bindpoint.bindset
corresponds to register spaces, withBindpoint.bind
then mapping to the register within that space. The root signature then maps these registers to descriptors.Vulkan - For Vulkan
Bindpoint.bindset
corresponds to the index of the descriptor set, andBindpoint.bind
refers to the index of the descriptor within that set.Bindpoint.arraySize
also is used as descriptors in Vulkan can be true arrays, bound all at once to a single binding.
-
constantBlocks
Provides a list of
Bindpoint
entries for remapping theShaderReflection.constantBlocks
list.
-
inputAttributes
This maps input attributes as a simple swizzle on the
ShaderReflection.inputSignature
indices for APIs where this mapping is mutable at runtime.
-
readOnlyResources
Provides a list of
Bindpoint
entries for remapping theShaderReflection.readOnlyResources
list.
-
readWriteResources
Provides a list of
Bindpoint
entries for remapping theShaderReflection.readWriteResources
list.
-
samplers
Provides a list of
Bindpoint
entries for remapping theShaderReflection.samplers
list.