From e6905876838977faf2f70958a4b5cfc5558f2527 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 20 Dec 2024 12:03:34 +0000 Subject: [PATCH] Update docs for D3D12 shader debugging --- docs/getting_started/features.rst | 3 ++- docs/how/how_debug_shader.rst | 2 +- docs/how/how_edit_shader.rst | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/getting_started/features.rst b/docs/getting_started/features.rst index 0693ac0ddc..ef25a4b71d 100644 --- a/docs/getting_started/features.rst +++ b/docs/getting_started/features.rst @@ -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. diff --git a/docs/how/how_debug_shader.rst b/docs/how/how_debug_shader.rst index 7303e143e4..d73cb2c417 100644 --- a/docs/how/how_debug_shader.rst +++ b/docs/how/how_debug_shader.rst @@ -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 ------------------------------- diff --git a/docs/how/how_edit_shader.rst b/docs/how/how_edit_shader.rst index 77bbd3fe0f..5c9a5f1787 100644 --- a/docs/how/how_edit_shader.rst +++ b/docs/how/how_edit_shader.rst @@ -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 ` 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.