cancel
Showing results for 
Search instead for 
Did you mean: 

OpenGL & Vulkan

asylum29
Adept II

vkCmdExecuteCommands messes up primitive topology

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"
actual.jpgexpected.jpg

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

Tags (1)
0 Likes
Reply
1 Reply
dorisyan
Staff
Staff

Re: vkCmdExecuteCommands messes up primitive topology

Thanks for the provided info! We will take a look into it as soon as possible!

0 Likes
Reply