Commit Graph
6876 Commits
Author SHA1 Message Date
baldurk ec7b2807d0 Build each architecture into its own APK
* This means we can have all the architectures we care about installed,
  and load the right library regardless of what the app does.
2018-01-26 21:19:16 +00:00
baldurk 077402bf11 Add failsafe so we don't wait the whole timeout if an apk closes/crashes 2018-01-26 21:19:15 +00:00
baldurk 79f3f54b84 Add a spinner progress bar while running remote server command 2018-01-26 21:19:15 +00:00
baldurk cb34a2daea Revamp android patching to only check for (& change) the debuggable flag
* We don't consider anything else, this includes permissions or the
  library being present. Since we no longer expect to patch in the
  library we also don't check its version (however we leave the tag in
  case it is useful in the future).
* If the user has root access we will never warn, assuming the injection
  will work fine even without the debuggable flag.
2018-01-26 21:19:14 +00:00
baldurk a019797f88 Move vulkan layer name and android library filename to global defines 2018-01-26 21:19:13 +00:00
baldurk 047bff7261 Add an new android hooking method using JDWP to inject & PLT hooks
* This is based on the GAPID method of injection, using the same steps
  to connect with JDWP and debug the application, breakpointing on key
  init-time steps to patch vulkan layer search paths and load libraries
  from our installed apk.
* We diverge by then using PLT hooks instead of trampolines to hook the
  EGL/GL calls - and so we also hook dlopen.
* This should work on any debuggable application - not currently checked
  but does not replace/break any of the previous injection, which can
  still work.
2018-01-26 21:19:13 +00:00
baldurk ec71b05173 Split out android patching code into separate file 2018-01-26 16:30:47 +00:00
baldurk 5527c57e68 Split out some miscellaneous utility functions
* We also wrap up and cache the fetching of friendly names by serial
  number to avoid some adb traffic.
2018-01-26 16:30:16 +00:00
baldurk 1be3e8bfac Split out handling of android tools: locating&precedence, executing, etc 2018-01-26 16:24:54 +00:00
baldurk ae7300e524 Move android files to separate subfolder 2018-01-26 15:49:09 +00:00
baldurk b22f93f458 Avoid remote server timing out if starting android packages.
* Android::StartAndroidPackageForCapture can take a long time, and we
  want to preserve the connection, so we spin up a temporary thread to
  continually Ping().
2018-01-26 15:42:15 +00:00
baldurk 643db8042b Tweak live capture again - feels more natural with buttons on the right 2018-01-26 15:33:18 +00:00
baldurk 24db8dbffc Add an 'internal' flag when launching processes, to reduce log spam 2018-01-26 15:33:17 +00:00
baldurk ddb8e76add Add EndianSwap function using platform intrinsics 2018-01-26 15:33:17 +00:00
baldurk 6614c37440 fix compilation on linux/android 2018-01-26 00:55:36 +00:00
baldurk 9c247a87ae Fix check that was precisely backwards. Caught by unit tests! 2018-01-26 00:06:53 +00:00
baldurk 64dd86c332 Don't set Vulkan as active API when we're calling D3D12... 2018-01-25 19:47:42 +00:00
baldurk 503fd1a858 Adjust padding in LiveCapture dialog 2018-01-25 18:55:54 +00:00
baldurk b17790e5c2 Batch vulkan initial state related allocations together
* We allocate chunks of 32MB - 256MB then suballocate as needed.
2018-01-25 18:18:47 +00:00
baldurk d452230782 Refactor resource manager initial content data to be driver-specific
* This allows more flexible construction of what params/resources need
  to be saved with initial contents data, as well as allowing better
  type safety where possible by using driver-specific types for the
  stored data.
* Especially it tidies up the ugly 'all data that tags along must be
  a written into a single allocated byte pointer'.
* The initial content struct is responsible for destroying itself and
  freeing any data.
2018-01-25 15:30:20 +00:00
baldurk 6fdc2a011c Don't query status of non-existant shader with glCreateShaderProgramv
* In glCreateShaderProgramv there is no shader object, so we pass 0, so
  we just treat this as implicitly successfully compiled.
2018-01-25 15:24:40 +00:00
baldurk 736d991d6a Pass configuration parameters to ResourceManager in struct
* Otherwise adding new parameters becomes impractical
2018-01-25 11:30:25 +00:00
baldurk 0268ba8b66 Don't read from char[] string in writing mode 2018-01-25 10:48:56 +00:00
baldurk ad841a0341 Add a limit for warning on unknown GUID QueryInterface calls 2018-01-25 10:36:16 +00:00
baldurk fb0772b828 Android internal compiler error fix 2018-01-25 10:09:05 +00:00
baldurk 8d265284ee Add some python valgrind suppressions 2018-01-24 22:52:31 +00:00
baldurk a159af9cfe Fix overrunning vector bounds if vertex attributes use high locations 2018-01-24 22:52:25 +00:00
baldurk 77f767394b Remove invariant decorations in vulkan PostVS vertex->compute transform 2018-01-24 18:44:26 +00:00
baldurk 904511afb0 Support composite types on vertex shader inputs, in vulkan PostVS fetch 2018-01-24 18:44:15 +00:00
baldurk 7636d370f4 Don't give patched entry point a debug name, as it breaks amdvlk 2018-01-24 17:12:23 +00:00
baldurk 158dff0287 Remove test code, committed by accident. 2018-01-24 16:15:49 +00:00
baldurk 8f405a2197 Render mesh data with instanced properties correctly. 2018-01-24 16:14:22 +00:00
baldurk f05cfe9454 Fix mesh picking in cases with index/vertex offsets 2018-01-24 15:45:46 +00:00
baldurk d286453bff Add marker region around pick vertex 2018-01-24 12:39:40 +00:00
baldurk f0c6323685 Don't update buffer viewer display if we just mousemove without clicking 2018-01-24 12:38:28 +00:00
baldurk 94f8cf94e3 Check iterator validity before dereferencing it 2018-01-24 11:42:30 +00:00
baldurk 5150a9531b Allow queuing a sequence of frames both before capture, or while running
* We also make the frame counting consistent: Frame 0 is the frame from
  device initialisation to first present, Frame 1 is from first present
  to second, and so on after that.
2018-01-24 11:38:37 +00:00
baldurk 8c25630369 Update ToolWindowManager to 611fd60c82e7501750226b4de39d108047c98445 2018-01-24 11:37:05 +00:00
baldurk 64c901776e Fix for GCC7 case fall-through warning 2018-01-24 10:46:37 +00:00
baldurk ec1e5dd687 Fix some copy-pasted error messages 2018-01-24 10:46:12 +00:00
baldurk a85ed4c548 Fix implementation of firstbit_(s)hi - thanks to Scott Kircher
* firstbit_hi counts MSB as index 0, BitScanReverse counts LSB as 0.
2018-01-22 20:37:24 +00:00
baldurk 91dbfc4cc6 Ensure we tidy up progress ticker and callback even if replay fails 2018-01-22 20:04:17 +00:00
baldurk 92808efc93 If the preview window becomes available later, then init it later
* E.g. on android this can happen if we started the replay while the
  replay apk wasn't in the foreground, but then it gets raised later.
2018-01-22 20:04:17 +00:00
baldurk 4ee17543de Create parent folder for any captures created. 2018-01-22 20:04:17 +00:00
baldurk 6fe179bea3 Only join a previous command thread and restart if it has exited
* APP_CMD_INIT_WINDOW can be called when the application hasn't fully
  shutdown, and the thread is still running. Hold a lock while we're
  inside renderdoccmd() so that we know if the thread has exited or not.
* This would be easier if android had pthread_tryjoin_np()...
2018-01-22 20:04:17 +00:00
baldurk e0aedf1f5b While we don't have proper DPI checking, double overlay size on android 2018-01-22 20:04:17 +00:00
baldurk f0015f4b77 Add gl_library_egl.* to VS project 2018-01-22 20:04:17 +00:00
Jimmy Lee 579386dddb gearvr crash fix and mip level fix for gearvr swapchain 2018-01-22 20:03:55 +00:00
baldurk f46aa2944d Add #includes to fix linux compilation 2018-01-20 10:17:22 +00:00
baldurk 33b3176cd4 Rewrite the analytics intro text to be less of a wall of text
* Also add a preview of what data will be included in any report, both
  in the intro and in the confirmation before sending any report.
2018-01-19 16:33:45 +00:00