Skip to content

bug: SaveTexture always fails when executing "rdc texture tid -o /path/to/picture.png" #206

@Junlin-Yin

Description

@Junlin-Yin

What happened?

Description

When attempting to export textures using the rdc texture command, the operation consistently fails with SaveTexture failed, regardless of the texture ID provided.

The issue occurs even though the capture file loads correctly and texture resources are properly listed.


Environment

  • OS: Windows 11
  • GPU: NVIDIA RTX 4070 Ti
  • Visual Studio: 2022 (Build Tools v17.14.36915.13)
  • Python: 3.10.16
  • RenderDoc: v1.41
  • rdc-cli: v0.5.1

Steps to Reproduce

Run the following commands in cmd:

rdc doctor
# all ok is confirmed

rdc open <path/to/file.rdc>
# opened: <path/to/file.rdc>
# session: <path/to/default.json>

rdc resources --type texture
# all texture-typed resources are listed, for example:
# 8517 Texture RT
# 8538 Texture Deferred GBuffer

rdc texture 8517 -o tex1.png
# error: SaveTexture failed

rdc texture 8538 -o tex2.png
# error: SaveTexture failed

Expected Behavior

The specified texture should be successfully exported to the given output path (e.g., tex1.png, tex2.png).


Actual Behavior

All attempts to export textures fail with:

error: SaveTexture failed

Debug Information

While debugging, I traced the execution into the RenderDoc source code and found the following call stack:

D3D11Replay::GetTextureData()        // d3d11_replay.cpp#L2659
ReplayController::SaveTexture()      // d3d11_device.cpp#L911

The critical issue appears to be that the following texture tracking maps are all empty:

  • WrappedID3D11Texture1D::m_TextureList
  • WrappedID3D11Texture2D1::m_TextureList
  • WrappedID3D11Texture3D1::m_TextureList

Because of this, the requested texture cannot be found, leading to the failure of SaveTexture.


Additional Notes

  • rdc doctor reports no issues.
  • Texture resources are correctly listed via rdc resources --type texture, indicating that the capture is valid and parsed correctly.

rdc doctor output

[ok] python: 3.10.16
[ok] platform: windows
[ok] renderdoc-module: version=1.41
[ok] replay-support: renderdoc replay API surface found
[ok] renderdoccmd: C:\Program Files\RenderDoc\renderdoccmd.exe (renderdoccmd x64 v1.41 built from c9e72e3d706c18601de874bcdb875b0ec977f952)
[ok] win-python-version: MSBuild renderdoc.pyd found at C:\Users\<name>\AppData\Local\rdc\renderdoc\renderdoc.pyd (version check skipped)
[ok] win-vs-build-tools: Visual Studio Build Tools found (version 17.14.36915.13)
[ok] win-renderdoc-install: RenderDoc found at C:\Program Files\RenderDoc\renderdoc.dll
[ok] win-vulkan-layer: registered at C:\Users\<name>\AppData\Local\rdc\renderdoc\renderdoc.json
[ok] adb: found: D:\Android-platform-tools\adb.EXE
[ok] android-apk: not found (run: rdc setup-renderdoc --android)
[ok] renderdoc-variant: upstream (1.41)

OS / Platform

Windows 11

Python version

3.10.16

rdc-cli version

0.5.1

Capture file

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions