Commit Graph

250 Commits

Author SHA1 Message Date
Aliya Pazylbekova 0f4acb3956 Add support for GGP in "renderdoccmd replay" 2019-03-14 01:23:11 +00:00
Aliya Pazylbekova 7c0365679f Add GGP build support
- Disable GL and GLES drivers on GGP
- Add flags to keep symbols in release builds. Adds
minimal debug info that preserves backtraces.
- Disable python modules and qrenderdoc for GGP
2019-03-14 01:23:11 +00:00
baldurk 26d823905e Allow running on Android 5.0 but with a warning that it's unsupported
* The apk targets api level 21 which is 5.0, so it still won't install on
  anything older.
* We pop up a big warning to the user the first time they try and select such a
  remote host.
2019-03-13 22:24:45 +00:00
baldurk 17e1ea96d2 Remove inaccurate comment 2019-03-13 12:19:38 +00:00
baldurk af656db915 Only require GLES 3.0 on Android, not 3.2 2019-03-13 12:15:02 +00:00
baldurk d706d531df Don't request runtime permissions on Android when not supported 2019-03-13 12:13:13 +00:00
baldurk 1713dcad1b Fix typo in python version macro use in renderdoccmd 2019-02-15 18:17:34 +00:00
baldurk 34a97482dd Add helper shortcut to 'renderdoccmd test' to run functional tests
* This invokes run_tests.py with any arguments but specifies the renderdoc
  module and python module paths automatically. Only works if built within the
  project repo itself as otherwise it won't locate the test script
2019-02-14 15:45:22 +00:00
baldurk 0753793f24 Allow passing --help or -t to test commands in renderdoccmd
* Previously it would be swallowed and processed as the argument to the test
  command itself. We need to do a little manual parsing and stop cmdline from
  doing too much work.
2019-02-14 13:17:19 +00:00
baldurk 6b571e9a06 Don't return from parse() if argc is 0, need to check required arguments 2019-02-14 13:09:43 +00:00
baldurk b5a6e815b9 Locate android SDK/NDK up front from various env vars before building
* We need to locate it before setting the toolchain file, so checking when
  building renderdoccmd is too late. This also lets us print where the SDK/NDK
  is found, and add error messages if we don't locate it properly.
2019-02-04 18:06:10 +00:00
baldurk 86ff87863e Update copyright years to 2019 2019-02-01 18:32:13 +00:00
baldurk d265a14a45 Change renderdoccmd to be a console program on windows.
* This means it outputs natively/properly to stdout/stderr and its output can be
  redirected with pipes.
* It does mean we need to be very careful whenever it's run internally to not
  pop up a command window, which happens by default.
2019-01-09 16:27:15 +00:00
baldurk 9ac07f806b On android only call eglTerminate after eglInitialize. Closes #1211 2018-12-19 09:58:15 +00:00
baldurk 5cfe6c7623 Give each breakpad server a unique pipe
* Speculative fix for a hang observed only on official builds when launching a
  32-bit program from a 64-bit version of RenderDoc.
2018-12-17 19:50:37 +00:00
baldurk 26511c546c Make RENDERDOC_NeedVulkanLayerRegistration feasible to call from python 2018-11-26 16:39:00 +00:00
baldurk f75b5e235e Change verify map writes capture option to verify buffer access.
* This option will now toggle on the behaviour to fill undefined buffer contents
  with a marker value, both if they're created without data (it will be zero
  filled instead) or mapped with discard (it will keep the old contents
  instead).
* There were too many hard to find problems or misconceptions about the buffer
  filling for it to be useful. Now it will be opt-in instead.
2018-11-23 11:25:39 +00:00
baldurk 2994f2f037 Fix incorrect change returning false unconditionally for argc==0 2018-11-16 14:06:44 +00:00
baldurk 2d4409c124 Keep screen on while renderdoc app is in foreground. Closes #1178 2018-11-15 16:34:38 +00:00
Nicholas Miell 6e3eef5fca Fix some std::vector assertion failures
gcc's debug std::vector will assert if you use vector[0] when
vector.size() == 0.
2018-11-12 19:26:21 +00:00
baldurk 609b447855 Check that when building for android that Java >= 1.8 is in the PATH
* This is independent of what JAVA_HOME points to, because some of the android
  tools just run 'java' without checking it.
2018-10-24 10:29:52 +01:00
baldurk 1c05c5e5d1 Add option to renderdoccmd replay to specify a loop count 2018-10-02 16:23:40 +01:00
baldurk fb23f6ad1d Add check for ANDROID_NDK, and error if not set when building android 2018-09-25 15:50:11 +01:00
baldurk 5b07a48479 Switch android build to use NDK-provided cmake file
* The existing android cmake file doesn't work with newer NDK releases, so we
  have to use the provided cmake file. It should work in NDKs as far back as
  version 14.
2018-09-25 15:09:54 +01:00
baldurk 0092e5ced2 Append link flags in cmake on android instead of replacing
* Thanks to @Themaister for this fix
2018-09-25 15:09:54 +01:00
baldurk 390096e796 Add missing includes on android
* Thanks to @Themaister for this fix
2018-09-25 15:09:54 +01:00
baldurk 6ec402e370 rename logfile -> capturefile parameter on execute, document for python 2018-09-18 18:05:39 +01:00
baldurk 4040429fba Remove unnecessary link against libGL/libEGL in renderdoccmd
* This means it's easier to build with GLES support by default
2018-07-06 22:44:26 +01:00
baldurk 569f11b757 Make sure to get eglTerminate function pointer
* Fixes 100% crash on startup introduce by #993
2018-05-26 14:41:39 +01:00
tabi.katalin d2cdca45a5 Fix bad alloc error when creating window surface
The screen doesn't refresh when changing between captures during replay on remote Android device because it fails to display the splash screen and the new preview window.
2018-05-24 10:45:46 +01:00
baldurk 851a88133a Remove the 'save all initials' option. Behave as if it's always enabled
* This option has always been a mixed bag - when originally written captures
  weren't compressed at all so saving the cost of a initial contents on a
  gbuffer would have a significant savings.
* Now with compression the savings are lesser, and it's a source of
  bugs/confusion for the case where either a bug is caused by leaking data from
  the previous frame or worse still the contents are discarded incorrectly.
* D3D11 will now behave as the other APIs will - saving initial contents
  whenever needed even if they seem like they might not be used.
2018-05-23 16:08:44 +01:00
baldurk d8a64c4172 Fix compilation on GCC 8. Closes #984 2018-05-15 19:44:17 +01:00
baldurk 627a965d69 Specify GLES2 renderable type when fetching egl config
* Fixes preview display on PowerVR
2018-05-11 20:39:43 +01:00
baldurk b4878bf4e9 Fix auto-detection and manual specification of conversion formats on CLI 2018-04-05 17:51:40 +01:00
baldurk 35865efef2 Always use git commit hash to identify android build
* This prevents reinstall issues if the UI is looking for a plain major/
  minor versionName and the apk was built with a commit hash.
2018-04-04 16:52:44 +01:00
baldurk 14d9ec461b Ensure there's a trailing path separator on upgrade command path 2018-03-06 11:06:46 +00:00
baldurk 0e31ab4b07 Be explicit about the identifier that needs to be passed to 'convert' 2018-03-03 16:43:15 +00:00
baldurk 13c1cf6ad4 Return ReplayStatus when launching/injecting, use to indicate JDWP error
* If android studio or other android tools are open when a package is
  launched for debugging, they greedily jump on it and connect which
  prevents us from connecting.
2018-02-20 11:54:57 +00:00
baldurk 934800793a Improve workflow for capture import/export
* If the export doesn't need buffers, we export directly from the loaded
  capture file instead of re-loading it.
* Add progress bars for the load step so it shows what's happening
  instead of looking stalled.
* Reduce compression rate on XML+ZIP buffers as it took too long trying
  to compress when exporting large captures.
2018-02-19 00:52:13 +00:00
baldurk 468c6c1e80 Wrap up CaptureOptions encoding via string into member util functions 2018-02-14 19:21:55 +00:00
baldurk 13dd17d6f2 Always 'release' the preview window even if it wasn't created.
* This helps on android where we might fail to create the preview window
  if our app isn't in the front, but we still want to let the base loop
  know that we're done previewing and let it go back to the generic
  splash screen.
2018-02-02 18:40:28 +00:00
baldurk 2147cb0b9f Create and destroy PThreadLocks globally
* If we destroy them at the end of android_main we might destroy them
  while the thread is running and cause incorrect code flows where we
  try to join and restart the thread while it's blocking.
* Don't get me started on why android_main exits when you get alt-tabbed
  away from...
2018-01-31 18:24:15 +00:00
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 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 56c6fa2d04 Use QCommandLineParser to parse arguments more intelligently. Refs #843 2018-01-17 21:07:03 +00:00
baldurk dea21b20a0 Remove global GIT_COMMIT_HASH define, use GitVersionHash global var
* On windows, the change in a global GIT_COMMIT_HASH define in each
  project needing it meant a full rebuild every time the commit changed.
* Ideally we'd set the define only on one file in each project, but
  MSBuild doesn't seem to support that. Instead we make a new tiny
  project that compiles a single cpp exporting a global var, and
  reference that global var in each other project.
2018-01-16 20:17:53 +00:00
baldurk 0991642393 Add error message in case reading from file fails while embedding 2018-01-04 21:46:41 +00:00
baldurk dec06a19fb Don't pass NULL f to fclose, passing --no-clobber if file doesn't exist 2018-01-04 21:46:41 +00:00
michaelrgb 89eb933be5 If user resumes APK after server shutdown, restart cmdthread.
Also make sure ANativeActivity_finish/DetachCurrentThread are called.
2018-01-03 11:11:25 +01:00
baldurk 0ea854a9da Don't return android windowing data if we have no window 2018-01-02 14:34:34 +00:00