Skip to content

Commit

Permalink
Update docs for D3D12 shader debugging
Browse files Browse the repository at this point in the history
  • Loading branch information
baldurk committed Dec 20, 2024
1 parent 47dcef3 commit e690587
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 3 deletions.
3 changes: 2 additions & 1 deletion docs/getting_started/features.rst
Original file line number Diff line number Diff line change
Expand Up @@ -81,13 +81,14 @@ D3D12

* Support for D3D12 up to D3D12.9, Windows 10 and above, and D3D12On7 on Windows 7.
* Debug marker uses the SetMarker/BeginEvent/EndEvent functions on the command list or queue.
* Vertex, Pixel and Compute shader debugging for DXBC/fxc shaders.
* Vertex, Pixel and Compute shader debugging.

Vulkan
------

* Support for Vulkan 1.3 on Windows, Linux, and Android.
* Event markers and object naming both come from ``VK_EXT_debug_utils`` or deprecated ``VK_EXT_debug_marker``.
* Vertex, Pixel, Mesh, and Compute shader debugging.

Captures have a very limited amount of portability between machines. Many hardware-specific feature uses are baked into captures, and portability depends on how similar the capture and replay hardware are, whether these feature uses can map the same in both cases. Captures are however completely portable between different OSes with sufficiently comparable hardware.

Expand Down
2 changes: 1 addition & 1 deletion docs/how/how_debug_shader.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ This page goes into detail about how to set up your captures for debugging shade

.. warning::

Shader debugging is currently only supported on D3D11, D3D12, and Vulkan. On other APIs the debug options listed below will either be hidden or disabled. In addition not all shaders on those APIs can be debugged, e.g. on D3D12 only DXBC shaders can be debugged and on Vulkan only some shader extensions and capabilities are supported. If the shader cannot be debugged the options below will also be disabled.
Shader debugging is currently only supported on D3D11, D3D12, and Vulkan. On other APIs the debug options listed below will either be hidden or disabled. In addition not all shaders can be debugged, e.g. if an unsupported feature such as a Vulkan extension is used. If the shader cannot be debugged the options below will also be disabled.

Including debug info in shaders
-------------------------------
Expand Down
2 changes: 1 addition & 1 deletion docs/how/how_edit_shader.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ Shader processing tools

.. _shader-processing-tools:

Each graphics API has a native shader format - for D3D11 and D3D12 this is DXBC bytecode, for Vulkan this is SPIR-V bytecode, and for OpenGL this is GLSL shader text. Additionally it's possible for the bytecode shaders to contain embedded debug information with the original source code and compilation settings.
Each graphics API has a native shader format - for D3D11 and D3D12 this is DXBC bytecode as well as DXIL on D3D12, for Vulkan this is SPIR-V bytecode, and for OpenGL this is GLSL shader text. Additionally it's possible for the bytecode shaders to contain embedded debug information with the original source code and compilation settings.

When editing a shader RenderDoc will display the original source if available, but otherwise it will attempt to invoke a shader processing tool to decompile the bytecode into a usable form. Multiple tools can be configured :ref:`in the settings window <shader-processing-tools-config>` and several for SPIR-V processing come with RenderDoc by default. If no tool is available RenderDoc displays a generated stub or default disassembly as a starting point.

Expand Down

0 comments on commit e690587

Please sign in to comment.