Skip to content

Version v0.25

Compare
Choose a tag to compare
@baldurk baldurk released this 19 Jul 16:22

Binary zips and installers for this release (and others) can be found on the builds page. Both stable and beta builds are up to date with this release, but beta builds can be updated more regularly. You can choose which type of release you want to install and receive updates for.

Version v0.25

This version brings some new features, tweaks to existing functionality and the bugfixes that have happened since v0.24. As always feel free to get in touch with me or post an issue here on github if you encounter a problem, or if you have feedback or a feature request.

Highlights include multiple OpenGL frame capture and dependency tracking, bookmarked events in the replay UI, improvements to the mesh preview window and iteration on pixel history and shader debugging for further accuracy.

OpenGL captures will not be backwards compatible as work has continued on that front, but D3D11 captures are backwards compatible with captures from previous versions.

In the source tree there's progress being made on OpenGL functionality and Linux support - glslang is now compiled into the distribution for compiling GLSL to SPIR-V. It's currently disabled in release builds but this will ultimately be used to support shader debugging on OpenGL. Likewise there is a Qt UI currently being built that will eventually be supported on Linux with the same functionality as the current .NET UI. Potentially in future the .NET UI will be retired, if the Qt version ever reaches parity.

Features

  • You can now make bookmarks in the event browser. Clicking on the bookmark button or Ctrl-B will add a new bookmark at the current event. Then you can either click on the shortcut buttons in the bookmark toolbar, or anywhere in the program you can press Ctrl-1 through Ctrl-0 to jump to the first 10 bookmarks.
  • This allows rapid jumping between interesting drawcalls, particularly useful if you are comparing two drawcalls back and forth.
  • screenshot 2015-07-19 135749
  • OpenGL applications can now capture many frames without needing to restart the application.
  • OpenGL captures now do proper dependency tracking, which means that like D3D11 logs only the resources needed for the captured frame are included in the capture file, not all resources that are live at that point.
  • Several improvements to the pixel history view, which will now show fragments that shader clip in a list of several drawing in one drawcall. You can also run the pixel history on a particular mip or array slice in cases where rendering happens to only one.
  • A bunch of improvements to the user experience in the mesh preview window.
    • The window now uses 4x MSAA by default (since there's barely any pixel work going on, this hopefully should not be a significant performance hit for anyone).
    • The arcball controls are now improved and are based around the bounding box calculated and rendered for each mesh component.
    • You can right click on the mesh to 'pick' vertices and select them in the raw data tables. Note that for when you have several vertices that have the same position but different UVs or normals, the first will be selected.
  • image
  • The log loading progress bar should hopefully now be a bit more representative rather than remaining mostly static and jumping several times.
  • Textures can now be zoomed up to 25600%
  • Constant buffer data can now be exported to a CSV file
  • The RenderDoc in-application API file has been simplified to remove typedefs and STL include, and a couple of new API convenience functions were added.
  • When single-stepping in a shader debugger, if a register tooltip is open it will now live-update instead of becoming stale.
  • Views of resources in D3D11 now have their lifetimes tracked separately. Previously if a resource continually had views created and released they would all be stored and replayed, causing slight overhead on capture and potentially significant slowdown on loading the capture.
  • Registers and constants are now highlighted in the register windows when selected in the disassembly view.
  • screenshot 2015-07-19 150155
  • Ctrl-F3 and Ctrl-Shift-F3 will search for the currently selected word in shader editors.
  • If pixel debugging fails, instead of popping up a dialog saying that the current drawcall doesn't write to that pixel, instead launch the pixel history.
  • When RenderDoc is displaying an image, if the image is changed on the filesystem the data will be reloaded and displayed with the pan and zoom otherwise staying identical. Note that if the image dimensions or format change the results might be unexpected.

Bugfixes

  • Fix QueryInterface for IRenderDoc_uuid returning the wrong pointer and causing problems on Release() (thanks @zao). Also the proper ID3D11Device* pointer is now used for identifying a window, it was wrongly casted.
  • When editing shaders, #include file searching is case insensitive.
  • If cbuffers have identical names, use the order to identify which one is which
  • Fixed a case where the currently active window being removed would mean no window is active.
  • Fixed pixel history on a depth-stencil texture not working properly.
  • Fixed a case where unpack state was inconsistent on loading GL texture data.
  • When an array of shader resources overlaps with a single shader resource in terms of register binding, the single shader resource has priority.
  • Fixed serialising GL program uniforms incorrectly
  • Report ARB_direct_state_access as a supported texture
  • Handle Luminance/Alpha texture formats in glTexStorage functions (kind of crazy that someone would do that, but not hard to support).
  • Hide extra refcounts on D3D11 resources for being bound to the pipeline from the user, as some naughty code would rely on the undefined refcounts and error message.
  • Register renaming for constants now supports arrays properly and structure heirarchies better.
  • Fixed a copy-paste mistake on GL that would cause an undesired dependency on ARB_direct_state_access
  • Right-clicking on auto-fit will re-fit whenever the texture selection changes, even if the event stays the same.
  • A variety of crash fixes both real and speculative from uploaded crash reports.
  • Using the arrow keys to nudge the selected pixel now works when the pixel context view is in focus as well as when the main texture view is in focus.
  • Fixed a memory leak that could happen with buffer orphaning using glBufferData
  • Fixed D3DCompiler register packing insanity when using arrays of float or float2 interpolators.
  • Fixed a case where NaNs in a texture's alpha would cause the texture to display incorrectly even when the alpha channel should not be visible.
  • When changing a value in the range control and deselecting the change is now committed rather than being left at a misleading value.
  • Fixed buffers as resources showing up as 'unbound' instead of using a default image and displaying their name.