Files
renderdoc/docs/Features.aml
T

91 lines
6.0 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<topic id="86b8bce7-b7cd-4b10-aa61-706463d14fe0" revisionNumber="1">
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
<introduction>
<para>
This page documents the current feature set of RenderDoc. This gives an overview of
what RenderDoc is capable of, and where it is in its development. You might also
be interested in the <link xlink:href="632271c3-3d72-4360-b4a0-dc570fcd541e" />.
</para>
<para>
Currently RenderDoc is limited to Windows and D3D11 only. The plan is to increase this scope
as soon as possible, to include OpenGL and D3D9 and possibly other platforms.
</para>
</introduction>
<section address="Features">
<title>Current Windows+D3D11 Feature set</title>
<content>
<para>
<list class="bullet">
<listItem><para>Support for D3D11 and D3D11.1, Windows Vista and above.</para></listItem>
<listItem><para>Trimming capture - capture file only contains data necessary
for replaying the frame in question, not all textures &amp; buffers ever created
in the lifetime of the app.</para></listItem>
<listItem><para>Optional network support. The main use case is capture &amp; replay on
the same machine, but you can also attach over the network, and replay on a remote host.</para></listItem>
<listItem><para>Multiple frame capture with ability to open side-by-side to compare.</para></listItem>
<listItem><para>Event browsing, with standard perfmarker style tree.</para></listItem>
<listItem><para>Full D3D11 Pipeline display.</para>
<list class="bullet">
<listItem><para>Resources bound to the pipeline are trimmed to what is actually in use,
e.g. if a shader only references SRV slot 0, only SRV slot 0 will be displayed, even if
something is bound to slot 1.</para></listItem>
<listItem><para>Where available D3D11 debug names are displayed, along with reflection
data with the shader to clarify usage.</para></listItem>
<listItem><para>Structured buffers have their total element count displayed, and UAVs
also show the current structure count.</para></listItem>
</list>
</listItem>
<listItem><para>Shader source display (where possible - i.e. debug info available).</para></listItem>
<listItem><para>Timeline bar of the scene hierarchy.</para>
<list class="bullet">
<listItem><para>Displays scene left-to-right in time, event hierarchy top-to-bottom.</para></listItem>
<listItem><para><legacyItalic>Not</legacyItalic> scaled based on time of each drawcall</para></listItem>
<listItem><para>Individual draw events are shown as dots when the tree is full expanded.</para></listItem>
<listItem><para>The currently selected resource in the texture viewer is highlighted below
individual drawcalls visible that use it - e.g. purple for 'used for write', green for 'used for read'</para></listItem>
</list>
</listItem>
<listItem><para>For each drawcall, a list of all API calls (state/resource setting) is available, with
each call optionally having a complete callstack to locate where it came from in-app.</para></listItem>
<listItem><para>Mesh buffer inspection and visualisation before/after vertex shader and at the end of the geometry
pipeline (after GS or DS, whichever is later). All views have arcball
and flycam controls, Projected data is not limited to the 2D viewport, RenderDoc attempts to unproject to allow viewing in
world-space.</para></listItem>
<listItem><para>'Raw' buffer inspection, e.g. for UAVs, VBs or other buffers. Custom format can be set with
HLSL-lite syntax.</para></listItem>
<listItem><para>Buffer export to CSV or raw binary blob and texture saving to DDS.</para></listItem>
<listItem><para>Texture/render target viewer.</para>
<list class="bullet">
<listItem><para>List of textures/RTs in the frame, and filtering system.</para></listItem>
<listItem><para>Standard visualisation controls - zoom/fit to window, mip/face/slice selection.</para></listItem>
<listItem><para>RGBA channels or depth/stencil selection as appropriate for the type of resource.</para></listItem>
<listItem><para>Flexible 'range' selection tool, to set custom black/white points (default to 0 and 1).</para></listItem>
<listItem><para>Currently set RT/textures thumbnail strip - updates as you move through the frame. Follows the
currently selected pipeline slot as it changes, rather than remaining on the given texture.</para></listItem>
<listItem><para>Tabbed view for locking a view of a particular resource over time.</para></listItem>
<listItem><para>Pixel value picking.</para></listItem>
<listItem><para>Save (in theory) any type of texture and format to various formats, dds as well as regular png/jpg.</para></listItem>
<listItem><para>Several debug overlays for render targets - Wireframe, Depth pass/fail, Stencil pass/fail,
Clipping (below black/above white points), NaN/-ve/INF highlight, quad overdraw.</para></listItem>
</list>
</listItem>
<listItem><para>Pixel history view.</para></listItem>
<listItem><para>Custom visualisation shader support - e.g. decode custom packed formats or gbuffers.</para></listItem>
<listItem><para>Vertex, Pixel and Compute shader debugging.</para></listItem>
<listItem><para>Hot shader editing and replacement.</para></listItem>
<listItem><para>Auto-range fitting to min/max values in texture data, and histogram display.</para></listItem>
<listItem><para>Simple per-drawcall timings.</para></listItem>
</list>
</para>
<para>
Most of these should be intuitive if you've used a graphics debugger before.
</para>
</content>
</section>
<relatedTopics>
<link xlink:href="632271c3-3d72-4360-b4a0-dc570fcd541e" />
</relatedTopics>
</developerConceptualDocument>
</topic>