diff --git a/docs/behind_scenes/opengl_support.rst b/docs/behind_scenes/opengl_support.rst index 82edbc829..6b76cfaad 100644 --- a/docs/behind_scenes/opengl_support.rst +++ b/docs/behind_scenes/opengl_support.rst @@ -19,7 +19,7 @@ Replay requirements RenderDoc assumes a certain minimum feature set on replay. On desktop this means you must be able to create a 3.2 core context. -Also note that this is the *minimum* required functionality to replay, some analysis features will be disabled unless you have more capable hardware features such as GL_ARB_shader_image_load_store, GL_ARB_compute_shader and GL_ARB_gpu_shader5. +Also note that this is the *minimum* required functionality to replay, some analysis features will be disabled unless you have more capable hardware features such as GL_ARB_shader_image_load_store, GL_ARB_compute_shader, ARB_shader_storage_buffer_object, and GL_ARB_gpu_shader5. On OpenGL ES, you must be able to create a GLES 3 context to replay. @@ -33,12 +33,16 @@ Extension support RenderDoc supports many ARB, EXT and other vendor-agnostic extensions - primarily those that are either very widespread and commonly used but aren't in core, or are quite simple to support. In general RenderDoc won't support extensions unless they match one of these requirements, and this means most vendor extensions will not be supported. -OpenGL remaining work ---------------------- +OpenGL shader debugging +----------------------- -There is one place where OpenGL is not at feature parity with other APIs. +RenderDoc supports a limited form of shader debugging on OpenGL, for vertex, pixel and compute shaders. However not every shader can be debugged and this will vary depending primarily on how modern the shader in question is. Generally OpenGL as a legacy API is not well designed for modern features and expectations should be set appropriately about how widely this feature can be used, and it is possible that there will be many cases where it can't feasibly be made to work. -* Shader debugging is not supported on any shader stage. +If your shader compiles unmodified to SPIR-V then it should debug correctly. In some cases RenderDoc will attempt to compile with looser requirements on SPIR-V mapping and handle any differences internally, but this is not guaranteed to work. + +In some cases a shader compiled to SPIR-V may invoke undefined behaviour due to differences to the driver compiled GLSL and differences in what resources and bindings are available. The effects of this may vary and best results will come from shaders that are explicitly laid out and explicitly fully bound compared to shaders that are lazily bound. + +Shader debugging has high minimum requirements for functionality and so may not be available on all drivers. At least ``ARB_compute_shader`` and ``ARB_shader_storage_buffer_object`` are required. Android -------