Skip to content

Version v1.17

Compare
Choose a tag to compare
@baldurk baldurk released this 26 Nov 17:38
· 2131 commits to v1.x since this release
v1.17
22d4dc4

Version v1.17

This is RenderDoc's last release of the year and focusses mostly on some quality of life improvements and expanded Vulkan extension support.

Binary releases are available on renderdoc.org with zip and installer for Windows and binary tarball for linux.

Main Highlights

  • Support for the new Vulkan extension VK_KHR_dynamic_rendering which allows dynamic renderpasses to be recorded at command record time across command buffers without needing to create renderpass or framebuffer objects up-front.

  • The resource inspector has some sorting options now - you can sort by alphabetical (the previous default), creation order (in terms of their original creation in the application), or by recently viewed. When sorted by recently viewed, the resources at the top are the most recently viewed in the resource inspector itself and will be resorted as resources are viewed.

    image

    image

    image

  • Compute shader debugging can now be launched either by split workgroup & thread ID, or by global thread ID.

    image

  • The mesh viewer now allows you to select the axis convention of input vertex data for e.g. Z-up instead of Y-up or left/right-handed.

    image

    image

Python API changes

  • ReplayController.GetCBufferVariableContents now takes a ShaderStage parameter after the pipeline and shader, to allow disambiguation on APIs like vulkan where a single shader object can have multiple shader stages with the same entry point name.
  • D3D12RootSignatureRange.rootElement has been renamed to D3D12RootSignatureRange.rootSignatureIndex to make it more clear that this refers to the original element and to distinguish from the split-by-range elements in the pipeline state.

Features/Improvements

  • UI: The performance counter viewer now displays only visible events when synced with the event browser, respecting the current filter.
  • UI: Custom visualisation shaders can now access the selected min/max range.
  • UI: Add functionality to reset an edited shader to original. Also it's easier to explicitly toggle between edited and original version being active without removing code changes.
  • All: Handle B8G8R8A8_UNORM legacy non-DXGI format case when loading DDS files.
  • OpenGL: Allow readback of 2D array and 3D textures for initial contents of textures from previous frames.
  • OpenGL: Add support for 3D ASTC compressed textures.
  • Vulkan: Add an option to export the current vulkan pipeline state & dependencies to a fossilize database. This is likely primarily useful for driver developers extracting out a pipeline, but could also be useful for minimising and sharing repro cases.
  • Vulkan: Remove VK_KHR_win32_keyed_mutex extension with other external memory extensions on replay as it's not required and may improve capture portability.
  • Vulkan: Support bool parameters in shader debug printf.
  • Vulkan: On oculus allow loading the bundled validation layers in the OS.
  • Vulkan: Don't list source debugging as available unless source debug information is present.
  • Vulkan: Add support for a number of new extensions:
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_feature_flags2
    • VK_KHR_maintenance4
    • VK_KHR_present_id
    • VK_KHR_present_wait
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_subgroup_uniform_control_flow
    • VK_EXT_color_write_enable
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_fragment_density_map2
    • VK_EXT_global_priority_query
    • VK_EXT_load_store_op_none
    • VK_EXT_rgba10x6_formats
    • VK_EXT_shader_atomic_float2
    • VK_EXT_vertex_input_dynamic_state
    • VK_EXT_ycbcr_2plane_444_formats

Bugfixes

  • UI: Fix texture viewer scrollbars not properly updating when zoom level changes.
  • UI: Fix potentially misleading root signature index listed in D3D12 pipeline state view.
  • UI: Fix internal formatting tags being exported or put on the clipboard from the event browser.
  • UI: Fix pipeline state viewer HTML export crashes.
  • UI: Internal/hidden properties in resource inspector creation calls are no longer displayed.
  • UI: Fix mesh picking for unusual or reverse-depth perspective projection.
  • UI: Prevent shader messages from previously opened captures showing up in later unrelated captures.
  • Linux: Fix a potential crash/hang when invoking shader editing tools.
  • Vulkan: Fix assignment of 64-bit array/matrix input values to locations.
  • Vulkan: Use shader stage to disambiguate entry points with the same entry point name in a SPIR-V module.
  • Vulkan: Fix texel read/write to respect format conversion when debugging shaders
  • Vulkan: Improve event browser summary of vkCreateRenderPass2.
  • Vulkan: Fix a crash writing to an offset within inline UBOs.
  • Vulkan: Fix a crash when using SUBSAMPLED images with the fragment density map extension.
  • Vulkan: Fix behaviour around skipping invalid padding descriptors when using overflowing descriptor update behaviour.
  • Vulkan & GL: single basic element buffers without a surrounding struct are handled correctly. In particular this is relevant for matrices that may require per-row/column padding.
  • Vulkan: Fix heavy memory use when specialisation constant IDs are very high.
  • Vulkan: Fix a potential crash patching SPIR-V modules with multiple pixel shader entry points.
  • Vulkan: Fix invalid SPIR-V being generated for vertex shaders that use subgroup operations.
  • GL: Add workaround to qualcomm driver bug reading cubemap faces as corrupt data.
  • GL: Fix a crash when fetching counter values over multidraw GL draws.
  • GL: Try to fetch necessary data for capture when multiple threads are emitting GL commands. Note that generally this is not supported or recommended.
  • GL: Fix texture type recorded for texture views of glCreate'd textures that are never bound directly.
  • GL: Correctly serialise query-to-buffer copies that happen via glGet functions.
  • GL: Add missing alias handling of EXT_map_buffer_range functions.
  • D3D11: Remove some resource MISC flags from shared resources that cause problems on replay.
  • D3D11: Snapshot contents of shared resources that are imported mid-frame.
  • D3D11: Fix pipeline state statistics counters.
  • D3D12: Fix a crash when ExecuteIndirect is called on a compute only command buffer.
  • D3D12: Fix quad overdraw not working when a drawcall's vertex shader outputs don't write to position as the first element.
  • D3D12: Fix a case where DXIL fails to patch correctly.
  • D3D12: Fix a bug where placed resources with freed heaps would cause crashes.
  • D3D12: Fix a crash fetching timestamps for events on copy queues.