The workflow makes sense, but I kind of fail to understand why to use "bug_if(...)" instead of "todo_wine_if(...)", except for I guess a bit of extra code clarity.
But my other concern about bug(), as it is, is that before step 4 happens, the bug will be forgotten about. And because the tests now succeed either way, nobody will notice when the fixed version *does* hit repositories. My idea is to introduce some more stringent tracking that will, among other things, make sure that tests will start "failing" once the bug is fixed.
The idea was that the driver version check would take care of that. We don't have that in current vkd3d, but it's not too hard to add. We also have VKD3D_TEST_BUG=0 to prevent these from passing. Note that I'm not necessarily advocating for adopting that scheme in Wine; just trying to provide some context.