The problem seems to be Vega-specific (reproed on Vega 64, 20.2.2). On the R7 360 as well as on other cards it works correctly.
The sample in a nutshell is:
- record secondary command buffers wrt. the current view frustum
- subpass 0: execute secondary command buffers (topology: triangle list)
- subpass 1: render bounding boxes (topology: line list)
With a (probably unnecessary) dependency between the subpasses.
Actual | "Expected" |
---|
| |
The code is not a "minimal" sample, as I didn't want to change too many things (I only replaced the models and changed some of the behavior), sorry for that. Build in Release, with the latest Vulkan SDK installed: FOR_AMD_5.zip
My first thought was that this is a subpass dependency problem, but didn't find any indication for it. Then I traced the problem to the vkCmdExecuteCommands call (commenting it fixes the box rendering).
Also tested with RenderDoc; it shows the box rendering done correctly, but when I step to the next call, it "retroactively" produces the incorrect result.
UPDATE
Minimal repro, which clearly shows that the problem is caused by the secondary command buffer: FOR_AMD_6.zip