Skip to content

Start Compute debugger after picking a UAV RenderTarget pixel #2065

@sammyfreg

Description

@sammyfreg

Description

RenderDoc has this nice essential feature of Picking a pixel from a RenderTarget and either displaying it's History or Debuging the Pixel Shader that wrote the value.

Nowadays, we are often using Compute shaders outputing values to a RenderTarget mapped as an UAV (Deferred Tiled Lighting for example). Unlike values written from a Pixel Shader, we cannot find the associated shader thread that wrote the value. For simple SV_DispatchThreadID.xy == Pixel.XY we can easily calculate the proper Group/Thread Id and launch the debugger with these values, while not as convenient it is manageable. However, add Dispatch Indirect to the mix (in our TileLighting example, because we grouped the tiles per Lighting Type) and it becomes very tedious to figure out which thread wrote to a pixel, making it rarely worth our time.

It would be nice if RenderDoc had the capability of finding the SV_DispatchThreadID that wrote to a particular picked pixel, and start the debuguer with it. There would be some things to figure out, like how to handle same pixels written to by many threads (maybe offer a list?).

Bonus Points
Offser similar capability with regular Buffer mapped as UAV. So we can pick 'entry index' or 'memory location' and start debugging the compute thread that wrote to it.

Environment

  • RenderDoc version: 1.9
  • Operating System: Windows
  • Graphics API: DX11, DX12...

Metadata

Metadata

Assignees

No one assigned

    Labels

    FeatureAn improvement or featureUnresolvedWaiting for a fix or implementation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions