As always, you can find binary downloads of this release on the builds page.
This is a smaller release but there are a couple of key features included. The main one is that the serialised capture format has changed. The new format should be more flexible and extensible for adding new features (to come in a later release), and it also has built-in compression, so that capture files are smaller on disk with minimal overhead for loading and saving.
This version will be backwards compatible, such that logfiles from older versions (back to v0.20) will load. Captures made in v0.26 will not load in older versions. In the future these old logfiles will not work, but hopefully after this there should be no need to make a backwards-compatible breaking change.
In this version there is a new stable RenderDoc application API, which is designed to be forwards and backwards compatible and is strongly supported. If you were integrating RenderDoc before you will need to update your code before it will work with v0.26.
- Updated capture file format, to compress the captured data, and support addition of arbitrary data - more details to follow in a future release.
- Added stable in-application API. See the renderdoc_app.h file - included in all binary distributions.
- Added a new application updater, that will automatically download and install new versions when detected at the click of a button.
- IronPython standard library embedding now just distributes a .zip file rather than trying to compile into a .NET dll assembly. This means importing the standard library should be much more reliable.
- Empty viewports are now highlighted more obviously in the pipeline state view
- Compute UAV slots now use shader variable name where available.
- Copy, dispatch and resolve calls now show the relevant inputs and outputs, rather than the current graphics bindings.
- Add support for some new GL ARB extensions
- Improved support for many shader source files when debugging - on the left hand side of the shader panel there is now a list of all source files, that you can click to quickly jump to those files. In addition, ctrl-shift-f will open a 'find in all files' window.
- Shader disassembly now happens lazily, which should mean improvements to log loading and shader creation during capture.
- Added more fallbacks for detecting position input elements in the mesh view, and made sure that no matter what at least some element will be selected.
- GL captures should now not be susceptible to results from later in the capture 'leaking' backwards into earlier in the capture, if e.g. a texture is written and read from without ever being cleared at the start of the frame.
- GL function names in the event browser have been tidied up to be more readable - now only counts and important parameters are displayed, the topology, index width, offsets etc are not displayed.
- Added a tips dialog, that is accessible via Help -> Show Tips. The tips are also linkable online
- Fixed an unfortunate crash that snuck into 0.25, where viewing DDS files caused a 100% crash.
- Fixed a crash trying to pick a vertex in a drawcall with no vertices.
- Fixed some cases where function pointers on GL could be called without being verified as present properly.
- Updated checks for GL on replay - ARB_buffer_storage is required as well as 4.3 + EXT_direct_state_access.
- Fixed an edge case crash handling nested drawcall markers.
- Fixed crashes where bad mesh data (inf, NaN, etc) would cause a crash when calculating the bounding box.
- Fixed a race condition where C++ to C# marshalling could fight on multiple threads.
- Handle invalid filename characters in shader filenames from debug info
- Corrected bounds checking of ld_structured_indexable
- Changed imm_atomic_consume used in ConsumeStructuredBuffers to do a prefix instead of postfix decrement.
- Corrected behaviour where if a cwd-relative pathname was passed to the in-application API for where to store captures, the UI would not be able to locate it.
- Create any parent directories in the path specified for captures to be stored.
- Fixed GL to not crash when RenderDoc is injected after GL has been initialised and used - instead RenderDoc will do nothing and capture nothing, which is consistent with D3D11 behaviour.
- Fix an incorrect serialise of glCompressedTex_Image3D_() calls
- Make sure to render GL overlay to the backbuffer.
- Handle unsized formats better in GL texture calls.
- Speculative workaround for nvidia driver crash
- Fix case where a geometry shader with streamout would fail to create if numStrides == 0
- Fix for a marshalling crash if struct field order wasn't returned in layout order
- Several crash report bug fixes and speculative fixes.
- Fixed a case where loading of DDS files failed due to a flag bit being set
- If a machine doing a renderdoc capture has no D3D11 runtime installed, fall back to using d3dcompiler from the renderdoc installation.
- Call SetLastError(0) after renderdoc WGL functions to avoid leaking out error codes that shouldn't be there.
- Protect against crashes or bad behaviour if FinishCommandList is called on an immediate context.