Version v1.25
This release primarily collects a number of bug fixes since v1.24, though it also includes provided support for nvidia's counter SDK (which requires manual installation) as well as a number of vulkan extensions.
As always binary builds with installers, zips and tarballs are available on renderdoc.org.
Python API changes
VKBindingElement.ycbcrSwizzle
has been renamed toVKBindingElement.samplerSwizzle
.
Features/Improvements
- All: nvidia counters can now be obtained via the performance counter viewer. This requires the manual installation of the nvidia SDK obtained separately.
- Python: The bindings now report not-equal instead of throwing an exception when comparing between incompatible types.
- Android: Change listing of Android packages for new Android version that requires different parameters.
- D3D12: Resource usage depends less on root signatures and more on shader reflection, which should reduce false positives of resources being reported as used on events when they are bound but unused.
- Vulkan: Display depth resolve textures in texture viewer thumbnails.
- Vulkan: Add support for several extensions:
VK_EXT_rasterization_order_attachment_access
VK_EXT_acquire_drm_display
VK_EXT_surface_maintenance1
VK_EXT_swapchain_maintenance1
VK_EXT_border_color_swizzle
VK_EXT_non_seamless_cube_map
VK_EXT_depth_clamp_zero_one
VK_EXT_image_view_min_lod
Bugfixes
- All: Fix handling of certain texture formats with DDS view and texture saving.
- All: Fix an out-of-bounds crash in the event browser.
- All: Add some more early-outs if a fatal graphics error is detected, to avoid crashing by continuing on.
- All: Fix some rounding issues with mips of non-power-of-two textures where some texels were unselectable.
- All: Fix the calculation of struct packing on std140 with padding at the end of the struct.
- All: Sanitise types and variable names to valid identifiers when generating buffer formats.
- All: Speculative fix for UI crash with texture preview windows being destroyed while a queued display is in flight.
- All: Fix a potential threading crash if the RenderDoc API is accessed while being used internally to communicate with a connected UI.
- All: Fix an out-of-date by one problem with histogram display in the texture viewer when using custom display shaders, that could show stale data.
- D3D: Fix an issue with shader stepping in D3D shaders where stepping over/back over would be off by one instruction.
- D3D: Fix shader debugging of non-array textures potentially using garbage data for an array slice index.
- D3D11: Fix corrupted data when uploading non-power-of-two block compressed textures via initial data in CreateTexture2D calls.
- D3D12: Fix a potential crash when changing between bindless draws with different root signatures.
- D3D12: Fix a regression that caused direct heap accessed resources to not show up correctly in the pipeline state view.
- D3D12: Fix potential collisions with existing vertex UAVs when patching UAVs to be pixel shader available, causing failures to debug pixels when vertex UAVs are in use.
- D3D12: Fix handling of stream PSO creations with missing subobjects not having correct default values.
- D3D12: Fix crash during capture if sparse textures are used and only some mips are mapped.
- D3D12: Fix calculation of stride for partial updates of opaque mip tail in sparse textures.
- D3D12: Handle new type of name mangling in dxil.
- D3D12: Fix a crash when fetching counters if D3D12 debug layer is enabled.
- Vulkan: Fix a problem reporting empty descriptors as used with bindless access, leading to some resources not being displayed properly.
- Vulkan: Fix use of immutable samplers with push descriptors not working properly.
- Vulkan: Fix a crash if a pipeline layout is used only in a push descriptor command and nowhere else.
- Vulkan: Fix a crash selecting a draw if BDA nested pointer types are used (pointer to struct containing a pointer).
- Vulkan: Fix a crash fetching counter data on compute-only queues.
- Vulkan: Fix a crash when directly selecting CmdEvent2 events in the event browser.
- Vulkan: Fix crash with descriptor-patching fallback path when not using BDA for internal buffers.
- Vulkan: Correct Intel driver version decoding so that workarounds aren't applied wrongly.
- Vulkan: Apply driver workarounds based on driverID when it's available.
- Vulkan: Fix use of graphics pipeline library with specialisation data for shader reflection applied in a linked pipeline.
- Vulkan: Fix handling of specialisation constant operations that return bool.
- Vulkan: In cases that detectably have a feedback loop over attachments in a renderpass, disable discard patterns that could potentially pollute replay.
- Vulkan: Allow handling for debugging 3D and cubemap depth textures.
- Vulkan: Fix vulkan disassembly to show DebugValue so that every steppable instruction has a unique disassembly line.
- Vulkan: Fix handling of structure strides that are more than 64kB in shader struct definitions.
- Vulkan: Handle inline
VkShaderModuleCreateInfo
on a pNext chain in compute PSOs as well as graphics PSOs. - Vulkan: Fix shader debugging with sampler descriptors that are immutable samplers.
- Vulkan & GL: Disable sample mask for normal texture overlays.
- GL: Fix display of wireframe overlay on Android devices when using baseVertex in a drawcall.
- GL: Allow specialisation of SPIR-V tool command lines based on GL vs Vulkan SPIR-V, and apply this to spirv-cross by default.
- GL: Allow the use of GL_EXT_shader_framebuffer_fetch on proper desktop GL as well as GLES.