baldurk/renderdoc

Capture single D3D11 Device among multiple

Closed this issue · 1 comments

Description

I have a game engine that uses D3D11 with multiple ID3D11Devices. One device is used by the UI, and the other one is used by the runtime for the game rendering. At the moment, when capturing a frame, I get only the information about the UI device since this is the one which holds the window's swap chain. I've seen in this issue #2974 that my setup was sort of encountered before, the difference being the Vulkan API in that issue. I thought of trying my luck to see if the problem was only for Vulkan, or for all APIs. Is it possible to make a select device in the Status panel? My goal would be to debug the runtime device, based on the frame of the swap chain. So, when I want to capture a frame, RenderDoc would monitor all calls to the runtime device in between 2 Presents from the UI device. I've seen that with the C/C++ API you can achieve this behaviour, but I wanted to ask this question to see if I can skip creating the plugin for my game engine

Environment

  • RenderDoc version: 1.31
  • Operating System: Windows
  • Graphics API: D3D11

No if you're using a D3D device that doesn't have present boundaries to automatically determine where the captured region is then you should use the in-application API to start and stop the capture at the appropriate times yourself. Unlike vulkan in the referenced issue in theory this should work (it's more akin to multiple vulkan instances which should in theory work).