Similarly to RADV, this is a kind of perverted situation: in
principle Vulkan doesn't allow vkCmdResolveImage() to be
executed conditionally (i.e., it is unaffected by conditional
execution), which means that vkd3d cannot implement conditional
rendering for ResolveSubresource(), hence the todo. However,
like RADV, llvmpipe apparently violates the specification and
still executes the image resolution command conditionally. So
that's a llvmpipe bug, even if one that helps us doing the right
thing.
I have to admit I'm not even sure of why most of those got marked
as todo in the first place. Running again now tests on commit
dff7c0e7b8f425887052384038f44cd9378f5c4b doesn't show all those
failures.
Using ok() may result in todo's succeeding when create_shader_stage()
succeeds, but vkCreateGraphicsPipelines() fails. There's not much point
in using ok() here in the first place though, because ultimately the
draw operation is going to fail when shader compilation failed.
The Metal bug was reported to Apple as FB15617433. Since we don't
care specifically about that bug, I'm just tweaking the test so that
it doesn't hit that bad path any more.