From 50b2cecc50918e6091f4a8b0e68c0854aca636f1 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 28 May 2021 12:19:12 +0100 Subject: [PATCH] Add documentation for shader messages window --- docs/imgs/Screenshots/ShaderMessages.png | Bin 0 -> 22174 bytes docs/window/index.rst | 1 + docs/window/shader_messages.rst | 49 +++++++++++++++++++++++ 3 files changed, 50 insertions(+) create mode 100644 docs/imgs/Screenshots/ShaderMessages.png create mode 100644 docs/window/shader_messages.rst diff --git a/docs/imgs/Screenshots/ShaderMessages.png b/docs/imgs/Screenshots/ShaderMessages.png new file mode 100644 index 0000000000000000000000000000000000000000..07fdd83e50ac2642d66e0fde11b7757f7a5f4533 GIT binary patch literal 22174 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 literal 0 HcmV?d00001 diff --git a/docs/window/index.rst b/docs/window/index.rst index 00a610335..dfffba639 100644 --- a/docs/window/index.rst +++ b/docs/window/index.rst @@ -10,6 +10,7 @@ Window reference settings_window pipeline_state shader_viewer + shader_messages timeline_bar capture_connection debug_messages diff --git a/docs/window/shader_messages.rst b/docs/window/shader_messages.rst new file mode 100644 index 000000000..de026a254 --- /dev/null +++ b/docs/window/shader_messages.rst @@ -0,0 +1,49 @@ +Shader Messages +=============== + +The Shader Messages window shows messages obtained from shader prints in a given drawcall. + +When selecting a draw you have the option to open the list of messages, which can be viewed in this window and filtered/processed. + +.. note:: + + Currently this feature requires API support and is only implemented on Vulkan. If in future other APIs gain support for it they will be supported in the same way. + +Adding shader prints +-------------------- + +The exact mechanism for printing from shaders varies by API, so it is best to consult the documentation for each API for more information. + +For Vulkan the SPIR-V extension ``NonSemantic.DebugPrintf`` is used to list printfs which are ignored by drivers but can be processed by tools like RenderDoc. This is exposed in GLSL via the ``GL_EXT_debug_printf`` extension and ``debugPrintfEXT()`` function, and in HLSL via the ``printf`` built-in function. + +Fetching shader messages +------------------------ + +Shader messages are not fetched for the whole capture at once, they are fetched on a per-draw basis when that drawcall is selected. If any messages appear they will be shown in the event browser next to the draw, with a link that opens the shader message viewer for those messages. The messages can also be found linked from the pipeline state under each shader stage, which will pre-filter for only messages from that stage. + +Shader Messages +--------------- + +The window itself is relatively simple. Each message retrieved from the api will be listed on its own row showing the shader invocation that printed the message along with its contents. The location itself will vary depending on the type of shaders - for vertices this will identify the instance and vertex, for pixels this will be the co-ordinate and sample, for compute threads this will be the group and thread. + +For non-compute shaders each row has two buttons, one to go to the particular invocation (the pixel, or the vertex) and the other to debug the invocation. Clicking debug will set a breakpoint on the print statement and run to it immediately. For compute shaders the only option is to debug. + +.. note:: + + Shaders which can't be debugged due to unsupported functionality may still produce print statements. In this case they still cannot be debugged. + +The messages can be filtered by text substring in the filter box, as well as by shader stage using the toggles. + +Double clicking on any row will take you to the corresponding event ID in the event browser. + +.. figure:: ../imgs/Screenshots/ShaderMessages.png + + Shader Messages: The Shader Messages window showing some simple prints from a vertex shader. + + +Shader Edits +------------ + +Since prints come from shaders, the expectation is that they are fixed for a given drawcall and so they are cached and not re-fetched each time the drawcall is selected. + +However this doesn't hold if the shader is edited, since the print could change or the control flow and inputs could change. When this happens any previous shader messages windows will show up as 'stale' until the drawcall is selected where they will refresh themselves with the latest messages. If the drawcall is already selected then the messages will update immediately.