Prevents a crash when refreshing the overlay for am unbound Texture resource and the pipeline state does not have a bound DSV.
Related to 742e3de2 which changed the internal behaviour of FillResourceView().
GPUSyncAllQueues() changed behaviour in e33629ca which meant the GPU was not being synchronized when patching the execute indirect arguments when loading a capture.
This led to a race between CPU & GPU and incorrect argument data being read back from the GPU to the CPU and then used for ExecuteIndirect replay.
In addition to fixing the bug changed other calls from GPUSyncAllQueues() to GPUSync() where appropriate ie. single flush validate debug mode.
* If we don't have BDA support we patch bindings to get our output buffer, but
we need to be sure to always patch all shaders - if some stages can't be
patched properly due to lacking store support, we need to still patch the
bindings.
* These were added 6-7 years ago and have been untouched since. They add no
value to preserve as they are almost guaranteed to never be reasonably
implemented.
* The only thing that is useful is the D3D9 hooks for begin/end events used in
some D3D11 programs, which has been moved to the D3D11 project.
* Proper GL doesn't seem to support this internal format, and fortunately the
contents save/load work fine with GL's built-in swizzling if we treat the
texture as RGBA8 instead.
* This is not needed on Vulkan because Vulkan uses a per-draw callback system
that automatically splits up multidraws into single draws for replay. On D3D11
there is no multidraw so it doesn't come up there.
* On GL we can e.g. have one draw touching the pixel half-way through a
multidraw, and then want to replay from that draw through to the next touching
draw which could be much later or in the same multidraw. It assumes we can
always replay from one draw to the next.
* We add a capture option that defines a soft limit we aim to keep under for
memory overhead during capture, excess initial states after that will be
stored temporarily on disk.