Does the command stream queue ever run empty? Should we submit any pending vulkan commands in this case?
In Grounded? I can try that, though it's not clear it's better than the current approach...
It doesn't seem to be enough, which doesn't exactly surprise me. The problem is that the game's render thread just does a bunch of d3d11 calls as soon as the frame begins (for some definition of the beginning of the frame), and the GPU has already finished by the time this is going on.
Did you benchmark the impact of the full NT syscall every d3d draw?
I believe I tested it with this game at least, though ultimately I don't know how much that says. On the other hand, as often, I don't know how to fashion a benchmark that will prove meaningfully that it does or doesn't matter.
In theory, QueryPerformanceCounter() can be modified to avoid the syscall, at least on some architectures, though I'm told this is kind of hard.
I double checked this, and QueryPerformanceCounter() even on every call to wined3d_context_vk_get_command_buffer() doesn't really seem to matter—for that game, with that driver and hardware...