Commit Graph

3765 Commits

Author SHA1 Message Date
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
baldurk baad227145 Add status for network remote side being busy 2016-08-19 17:26:17 +02:00
baldurk 018cbcbcc1 Add errors encountered while executing & injecting. 2016-08-19 17:26:16 +02:00
baldurk 802ccc3991 Add initial handshake for remote server 2016-08-19 17:26:15 +02:00
baldurk 699fc78d92 Reduce target control/remote server connection timeout, for faster enum
* On the assumption that for both of these use-cases the remote machine
  isn't going to be across so terrible a network that it will take 1s or
  longer to at least make the TCP connection handshake.
2016-08-19 17:26:15 +02:00
baldurk 89f0cdbfff Add confirmation response for server shutdown packet 2016-08-19 17:26:14 +02:00
baldurk 4e73f9736e Change SendPacket with only type to not have a payload, add recv version 2016-08-19 17:26:13 +02:00
baldurk 7af08c80ee Ignore child processes so they don't stick around as defunct 2016-08-19 17:26:13 +02:00
baldurk 84baa6d752 Partially implemented support for capturing & opening logs in a context 2016-08-19 17:26:12 +02:00
baldurk 14c17cf5a5 Use realpath() instead of readlink() for fetching full pathnames 2016-08-19 17:26:11 +02:00
baldurk 724fef7bb6 Don't specify logfile for remote triggered captures 2016-08-19 17:26:11 +02:00
baldurk b1fcea3c3e When switching context, make a remote connection in the render manager 2016-08-19 17:26:10 +02:00
baldurk 5beb4eb1c9 Return proper status for failures opening captures 2016-08-19 17:26:09 +02:00
baldurk fa0b13f2ed Add context chooser to main window for choosing between remote servers 2016-08-19 17:26:09 +02:00
baldurk f8b3fd3e1e Update renderdoccmd for new remote server code, add daemonise for server 2016-08-19 17:26:08 +02:00
baldurk 4fde9b065f Expand remote host selection for attaching to handle remote servers
* Also remove some of the old remote-replay single-shot code handling.
2016-08-19 17:26:07 +02:00
baldurk 8bd25559a4 Add function to shutdown remote server over connection 2016-08-19 17:26:06 +02:00
baldurk 9a544e61af Rename ModalPopup to ProgressPopup 2016-08-19 17:26:06 +02:00
baldurk a4b9023df5 Update C# side P/Invoke interop 2016-08-19 17:26:05 +02:00
baldurk cc04496dd1 Remote server returns the remote path of any copied capture 2016-08-19 17:26:04 +02:00
baldurk 056d3d01ee Add constructors from std::string/const char * to rdctype::str 2016-08-19 17:26:04 +02:00
baldurk 2bb34bffc6 Fill in the remainder of the C API for RemoteServer 2016-08-19 17:26:03 +02:00
baldurk 58ba230a56 Don't register image viewer replay driver as normal
* This means the image viewer doesn't show up as a possible local replay
  etc. It's more of a 'magic' driver that supports things automatically.
2016-08-19 17:26:02 +02:00
baldurk 7beb3b494a Remove remote server code from qrenderdoc until it's refactored 2016-08-19 12:23:19 +02:00
baldurk fa335fcb7f Add functions to remote server to execute, take ownership of a capture
* The former is obvious what it will be used for.
* The latter is so that when a program is executed and the UI connects
  to it remotely, any temporary logs don't have to be immediately copied
  to the UI machine, but instead they can just pass ownership of those
  to the remote server, which can hold onto them to either copy back at
  a later point, or delete them if the UI decides it doesn't want them.
2016-08-19 12:23:19 +02:00
baldurk 23da6f1e4b Identify localhost by IP range, not by hostname 2016-08-19 12:23:19 +02:00
baldurk aa69c2d6d2 Change remote server from being a one-shot remote replay to proper loop
* The remote server is intended to be long-lived and do many things, so
  we keep it around and mix proxy commands with normal commands.
2016-08-19 12:23:19 +02:00
baldurk 30dcc72a68 always allow connections from localhost 2016-08-19 12:23:19 +02:00
baldurk 4e450dbfcc Rename RemoteRenderer to RemoteServer 2016-08-19 12:23:19 +02:00
baldurk 5a6a200432 Fetch packets outside of replay proxy, so we can serve other commands 2016-08-19 12:23:19 +02:00
baldurk 45de1f2b5f Rename remote_access.cpp to target_control.cpp 2016-08-19 12:23:19 +02:00
baldurk 481a28dc29 Rename RemoteAccess to TargetControl to better disambiguate RemoteServer 2016-08-19 12:23:19 +02:00
baldurk 4bfbcbd14d Rename remote_replay.cpp to remote_server.cpp 2016-08-19 12:23:19 +02:00
baldurk 892004f064 Rename replay proxy and remote server packet enums, and disallow overlap 2016-08-19 12:23:19 +02:00
baldurk 5ed6ee2938 Add better error messages when failing to load images.
* This includes an enum for unsupported (but recognised) image formats
  instead of just a generic 'file corrupted' or misleading 'API
  unsupported' error.
2016-08-19 12:17:09 +02:00
baldurk b9d44dc820 Read in byte-sized items so returned count is in bytes.
* Fixes EXR loading
2016-08-19 12:15:30 +02:00
Baldur Karlsson fff93a4bcc Remove vim dependency from COMPILE.md
* No longer using xxd, so no need for vim directly
2016-08-19 10:50:49 +02:00
baldurk f2f38880f9 Remove absolute path to WiX toolset - use $WIX 2016-08-19 02:00:55 +02:00
baldurk e5d59289da Minor code formatting tweak, and expand details of comment for future 2016-08-18 18:30:12 +02:00
Michael Rennie cc3cc1f392 Wait for the socket thread to finish when unloading, close the open socket.
The Android loader dlopens a layer twice, so if the layer did not clean up
properly the first time it is unloaded then we will fail to open a socket
on the default port 38920 during the second dlopen.
2016-08-18 18:28:27 +02:00
Michael Rennie 333d8e16b1 Display on which port we are listening for a remote access connection.
Knowing the port is needed for doing:
adb forward tcp:38920 tcp:38920
2016-08-18 18:28:27 +02:00
Michael Rennie 255f8cd34e Changed AppFolderFilename on Android to fix SaveShaderCache. 2016-08-18 18:28:27 +02:00
baldurk 4c0ff83d83 Allow empty GL captures without failing 2016-08-16 18:12:22 +02:00
baldurk f58f93d283 Remove glslang workaround for nvidia, and check on version number
* Also remove the file timestamp AMD check, since now AMD drivers have
  version numbers that increment.
2016-08-16 17:31:43 +02:00
baldurk 757495e246 Add very small delta onto max value for histogram calculation
* The calculation in the shader normalises each value between min and
  max, then multiplies by the number of buckets and does floor() - but
  this means something precisely equal to the max will be in bucket
  NUM_BUCKETS instead of NUM_BUCKETS-1 like we want. So adding on a very
  small delta won't shift values particularly since we are coarsely
  bucketing them, but does handle this edge case.
2016-08-16 11:05:17 +02:00
baldurk c9b052cffe Fix casting from non-dispatchable VkDebugReportCallbackEXT to pointer 2016-08-15 20:26:40 +02:00
baldurk 09ecb3a6b3 Don't use -Werror in release mode on non-windows builds 2016-08-15 19:56:01 +02:00
baldurk 4b3e583b16 Make sure curType is set for ARB_dsa entry point, don't rely on create.
* If a texture is created with glCreateTextures, we set curType at that
  point. However it is valid to use a ARB_dsa texture storage function
  with a texture created via glGenTextures, at which point we need to
  be sure that curType is set when storage is allocated via one of
  these functions.
* In valid GL, this is redundant work (since you can't retype), so we
  don't check that the type is the same.
2016-08-15 19:56:01 +02:00
baldurk 8ba09a4ea2 Re-enable some warnings that no longer appear in glslang headers 2016-08-15 19:56:01 +02:00