* This was copy-pasted from windows where unfortunately the nfds
argument is ignored and we could get away with just passing 0 (which
I suspect is where the broken code came from originally - a windows
example code that passed 0)
Fixes glXCreateWindow returning "BadMatch (invalid parameter attributes)".
Also delete the GLX_ALPHA_SIZE=8 criteria, else there might not be any
matching config.
* If the AMD extensions are active and captured, the driver will crash
on replay in a hard to diagnose way (unless you know what's really
wrong!)
* With this change, the target application should see the extensions
failing to create and gracefully fallback to not using them.
* Also allow disabling GL a little better by removing the dependency in
renderdoccmd.
* Disabling them now completely removes all xcb and xlib build
dependencies. The resulting library/executable is only useful in
limited situations - e.g. replaying vulkan remotely which doesn't need
any window system interaction. Or capturing vulkan as well with the
KHR_display WSI extension which doesn't need any built-time includes
or libs.
* This lets us detect when a remote server has been disconnected and
needs to be restarted, as well as alerting the user if this happens in
the middle of a replay session.
* Pinging other hosts means the context switcher is reasonably up to
date if one of them comes up.
* The compression bound was just a hacked 'uncompressed size + 512'
which might not be enough for true worst case.
* Worse, the serialisation was transferring size_ts so it would break if
proxying between 32-bit and 64-bit executables.
* If the machine idents differ in significant ways that we'd consider
it to be a different platform (currently just OS), and if so mark it
as supported but suggested to be replayed remotely.
* This can be used to determine what kind of machine a capture came from
and potentially decide to alert the user and suggest replaying on that
kind of machine if it's very different.