renderdoc icon indicating copy to clipboard operation
renderdoc copied to clipboard

Vulkan Multiview support for pixel shader debugging

Open Zorro666 opened this issue 1 year ago • 0 comments

Description

  • Implement Issue #3097
    • Output ViewIndex into the pixel shader hits array
    • Select the pixel shader input which matches the viewIndex to the passed in slice parameter
      • uses the first colour attachment image view to convert slice to viewIndex
    • Ignore the view parameter if set to ~0U (rd.ReplayController.NoPreference)
    • Ignore the view parameter if any subpass has an empty multiviews

Testing

  • Tested using Sascha Williams multiview sample
  • New Automated Test VK_Multi_View
    • colour attachment has four array slices and the imageView starts at slice array index of one
    • Vertex shader output Red for view 0, Green for view 1, fragment shader is pass thru and does not use viewIndex
    • Fragment shader output Red for view 0, Green for view 1, vertex shader does not use viewIndex
    • Geometry shader output Red for view 0, Green for view 1, fragment shader is pass thru and does not use viewIndex
    • Vertex shader output fixed colour to pass thru fragment, neither shader uses viewIndex
    • Not implemented (because Mesh Shader does not currently support multiview): Mesh shader output Red for view 0, Green for view 1, fragment shader does not use viewIndex
    • Python checks vertex and pixel shader debug output against replay rendering output
  • Ran D3D11_, D3D12_, VK_, GL_ automated tests locally to check the python compiles with the extra required parameter for DebugPixel including slow tests and check Iter-Test and Repeat-Load

Zorro666 avatar Feb 14 '24 11:02 Zorro666