Commit Graph

3813 Commits

Author SHA1 Message Date
baldurk a1d0b72e79 Fix select() calls - nfds must be the highest fd value plus 1
* 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)
2016-08-24 15:53:53 +02:00
baldurk 3e5d55d1d6 Add an option to choose the default save folder for captures. Refs #335 2016-08-24 15:53:52 +02:00
baldurk 3d6214622b Switch error code from AmdDxExtCreate11 properly to E_FAIL 2016-08-24 15:53:51 +02:00
Michael Rennie 129f4218c9 Choose FB config with a GLX_VISUAL_ID that matches the X screen.
Fixes glXCreateWindow returning "BadMatch (invalid parameter attributes)".
Also delete the GLX_ALPHA_SIZE=8 criteria, else there might not be any
matching config.
2016-08-23 20:37:10 +01:00
Michael Rennie 86fd623a54 Fix char* format specifier. 2016-08-23 20:26:28 +01:00
baldurk e7cbc905e6 Add AMD D3D11 extensions headers, and force-disable AMD exts on create
* 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.
2016-08-23 17:23:42 +02:00
baldurk 5826777dfe Blind (untested) implementation of wrapping/handling for VK_KHR_display 2016-08-23 17:18:42 +02:00
baldurk 872fbe017b Make xlib and xcb support optional (but default on) on linux
* 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.
2016-08-23 16:25:21 +02:00
baldurk f8bbedeb8b Ping the connected host regularly and check other hosts at lower freq.
* 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.
2016-08-23 15:21:52 +02:00
baldurk 0ddfd3d65b Shut down active client properly when killing remote server 2016-08-23 13:47:06 +02:00
baldurk a8cfc753df Bullet proof the replay renderer against the proxy going away suddenly 2016-08-23 13:37:24 +02:00
baldurk 81b6b0653b Display the local filename even when copying to remote for replaying 2016-08-23 13:25:47 +02:00
baldurk 27b7077c36 Add versioning into remote server protocol 2016-08-23 13:02:07 +02:00
baldurk 1b06e2b553 Handle EAGAIN and EINPROGRESS where appropriate as well as EWOULDBLOCK 2016-08-23 11:31:01 +02:00
baldurk 4bc3dbcc9e Rejig update dialog to provide a bit more info and display RTF notes 2016-08-22 11:03:22 +02:00
baldurk d632bc7ba8 Fix crash fetching data with an offset larger than the buffer size 2016-08-22 10:07:04 +02:00
baldurk 21a5bfd55a Fix compile warnings about shadowed variables. 2016-08-19 19:23:59 +02:00
baldurk 8183c0d2ac Better handling of BGRA8 dds saving and loading 2016-08-19 17:36:36 +02:00
baldurk 79b860c1d5 Fix saturate on the wrong sub-expression clamping sRGB white slightly 2016-08-19 17:26:39 +02:00
baldurk a786ac2eab When switching textures/events, leave pixel pick result valid
* This avoids a flicker when using remote replay while the pick result
  comes in
2016-08-19 17:26:39 +02:00
baldurk 6008458216 Fix LZ4 compression for replay proxy texture data transfer
* 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.
2016-08-19 17:26:38 +02:00
baldurk 39b995fcfa Add a dialog to ask if the user wants to replay remotely 2016-08-19 17:26:37 +02:00
baldurk 91bf3ff3fc Handle empty strings in marshalling (NULL elems and count == 0) 2016-08-19 17:26:36 +02:00
baldurk d2faf76356 Save machine ident in captures and compare to machine ident on open
* 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.
2016-08-19 17:26:36 +02:00
baldurk 52a754d4c1 Add function to get a coarse machine identifier
* 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.
2016-08-19 17:26:35 +02:00
baldurk 027bcdb7e8 Don't validate existance of working directories on remote captures 2016-08-19 17:26:34 +02:00
baldurk b5e6f8bef2 Allow specifying environment variable modifications
* This works for local and remote invocations of programs, but is mostly
  useful on unix systems (Windows programs use env vars less often)
2016-08-19 17:26:33 +02:00
baldurk 71cca06683 Make windows environment variable modification case-insensitive 2016-08-19 17:26:33 +02:00
baldurk 2fe43fab79 Don't try to copy a non-local log to the remote thost 2016-08-19 17:26:32 +02:00
baldurk 12d5f5bd70 Make sure copy from remote happens even when not running 2016-08-19 17:26:31 +02:00
baldurk d05f99d1b5 Don't add non-local files to recent list 2016-08-19 17:26:31 +02:00
baldurk d04c06a229 Add a remote/virtual open file dialog for browsing over the network
* This needs some optimisation - the obvious one being to batch up
  requests for multiple children all at once.
2016-08-19 17:26:30 +02:00
baldurk 23cf596d52 When requesting directories for '/' on windows, return the drives 2016-08-19 17:26:29 +02:00
baldurk fd1d7ef58c Disable config options by default, and also disable the buttons 2016-08-19 17:26:28 +02:00
baldurk aebed0e900 Expose directory listing functions to C# 2016-08-19 17:26:28 +02:00
baldurk db57f18b08 Add function to get home/documents folder 2016-08-19 17:26:27 +02:00
baldurk 593e2c5903 Add an function to return directory list of files and basic properties. 2016-08-19 17:26:27 +02:00
baldurk 5dc70c2a72 Rename ProxySerialiser to ReplayProxy 2016-08-19 17:26:26 +02:00
baldurk 87c978f71a Add functionality to copy captures to the remote server for replaying 2016-08-19 17:26:25 +02:00
baldurk ebea48260d Mark blocking invokes for painting as lower priority
* This allows them to be enqueued without the usual synchronous block
  if there's something long-running on the queue while in remote mode.
2016-08-19 17:26:24 +02:00
baldurk d63e3b89ad Add support for copying files back from remote server 2016-08-19 17:26:24 +02:00
baldurk 6437347081 Don't double-delete serialiser of data into replay proxy 2016-08-19 17:26:23 +02:00
baldurk 96c777cb43 Set display properly when checking RemoteHost status 2016-08-19 17:26:22 +02:00
baldurk a2955a39b0 Don't recreate RenderManager when closing logfile 2016-08-19 17:26:22 +02:00
baldurk fe08662e38 Handle non-local logs, make sure they are properly owned and deleted 2016-08-19 17:26:21 +02:00
baldurk 0207c74b90 Check remote server status at startup to pre-populate context chooser 2016-08-19 17:26:20 +02:00
baldurk dca8fe7905 Actually use modified path in working dir hint 2016-08-19 17:26:20 +02:00
baldurk 2060173049 Track busy and active connections and display in UI 2016-08-19 17:26:19 +02:00
baldurk 8a5d300e78 Use custom exception for replay creation failures 2016-08-19 17:26:18 +02:00
baldurk 42f57990d9 Change remote server to have server thread & client threads
* This lets us respond to multiple clients (although all but one will
  get a busy signal).
2016-08-19 17:26:18 +02:00