vkd3d has a "bug" keyword, but this doesn't really address either concern. As far as I can tell "bug_if (a) ok(b)" is effectively shorthand for "todo_wine_if (a && !b) ok(b)" [and also reporting the bug count separately from the todo count, but practically I fail to see the point in this.]
For what it's worth, the idea at the time was that the process would go something like this:
- We investigate a test failure, and it turns out it's an upstream driver bug. - We report/fix that bug upstream, and a driver fix gets committed. - We add a "bug_if(is_<vendor>_device(device, "<version>"))" to the tests and wait for the fixed version to be sufficiently propagated. In practice that would probably be until it's in Debian stable. - We remove the bug_if() again.
Of course I can't say that's been terribly successful in practice, and there are various reasons for that. One of those is that at the time there was much closer cooperation between upstream Wine/vkd3d and Mesa than there currently is. Most of that cooperation was based on people being motivated to make things better in their free time though, and between Mesa switching to Gitlab and the Valve forks, some of the underlying motivation essentially just evaporated.