Commit Graph

136 Commits

Author SHA1 Message Date
baldurk bd199ca8e6 Remove declarations for C interface from renderdoc_replay.h header
* The functions are still exported and that's all renderdocui cares for.
* The interface is no longer to be used so gets in the way of the
  generated SWIG bindings.
2017-04-18 14:57:36 +01:00
baldurk d40fc8471d Change API enums to enum class, remove now redundant prefixing
* This gives a little nicer syntax, a bit better type safety, and also
  reflects better for SWIG bindings. Overall it's a minor change but
  better.
* We don't update the C# UI at all, since it's soon to be removed and
  not worth the effort/code churn.
* For now so we're ABI compatible with C#, all enums are uint32_t, but
  that is an obvious optimisation in future to reduce struct packing.
* We avoid 'None' as an enum value, because it's a reserved word in
  python so will cause problems generating bindings.
2017-04-18 14:57:33 +01:00
Peter Gal 588eb083db Remove obsolete workarounds to force shared library linking
As the --no-as-needed linker option was added there is now
no need to force link to GL/EGL shared libraries via
extern methods.
2017-04-17 02:39:29 -07:00
Peter Gal 081f65dff1 Disallow the linker to ingore shared libraries during linking
In some cases when the renderdoccmd/qrenderdoc is linked the linker
ignores the libEGL.so and only uses the librenderdoc.so.
This is because the renderdoc shared library provides the
same symbols as the libEGL.so. However we need to keep the
libEGL.so as we are using RTLD_NEXT in the renderdoc shared
library.
2017-04-17 02:39:29 -07:00
Peter Gal 489cc76c07 Specify GL ES version for the Android renderdoccmd
For Android the minimum GL ES version must be configured
in the AndroidManifest.xml so we would not end up
with an old ES version.
2017-04-05 12:00:31 -07:00
baldurk 747d0550f9 Compile fix - missing rename was mixed in with other changes 2017-03-13 19:06:22 +00:00
baldurk 487a1b7903 Start moving towards C++ only UI code. Assume C++ for the replay API
* The C# P/Invoke stuff doesn't directly use the header, and we are soon
  going to deprecate the C interface entirely.
2017-03-13 17:56:00 +00:00
baldurk b5f5b8534e Update solution and projects to VS2015, VS2010 is no longer supported
* Truly, this is a sad day. But unfortunately many dependencies are just
  not supported and it's increasingly difficult to stay on VS2010.
* In an ideal world, the IDE and compiler would be decoupled, but that's
  not the case.
2017-03-13 17:23:38 +00:00
Michael Rennie 5a1ded7386 Moved API-specific GLReplay code to GLPlatform.
ENABLE_GL & ENABLE_GLES can now both be ON without build errors on Linux.
2017-02-22 12:46:28 +00:00
baldurk 11a914bd59 Implement win32/linux checking and registering of vulkan layers 2017-02-16 17:10:03 +00:00
baldurk 71c05ed572 Remove some of the redundant places where git commit hash is #define'd 2017-02-16 17:10:02 +00:00
Peter Gal a70bcb8ad3 Add EGL replay implementation 2017-02-15 22:38:26 +00:00
baldurk bc2ef77405 Centralise object file dirs in VS so they're not all over the tree 2017-02-14 19:14:52 +00:00
baldurk 7caf12aea4 Add $ORIGIN/../lib/ to rpath for renderdoccmd and qrenderdoc 2017-02-10 12:09:05 +00:00
baldurk dd957a2ac8 Change std::setlocale to setlocale to fix on some compilers 2017-01-24 22:27:09 +00:00
baldurk 030cbfde9a Batch update copyright years everywhere 2017-01-06 12:13:31 +00:00
baldurk 8c8cf07385 Add helper menu items to tools menu if rdocself.dll is loaded 2017-01-02 20:16:27 +00:00
baldurk 2a4d2451ff Allow 'promoting' back to capture 64-bit from 32-bit, in 64-bit install
* A 64-bit install has an x86 subfolder to capture 32-bit programs. If
  a 32-bit program then launches a 64-bit program we need to 'promote'
  back to run the original bitness to capture it.
* It's still not supported to capture 64-bit in general from just a
  32-bit install as the support files aren't included.
2016-12-08 19:04:59 +00:00
baldurk c810a96300 Keep debug log the same even when going via cap32for64 2016-12-08 19:04:57 +00:00
baldurk 512906c104 Export GLX functions we don't intercept as pass-through functions 2016-11-19 15:13:55 +01:00
baldurk 3290dd1448 Move version information to public API so that all projects can share it 2016-11-11 20:35:59 +01:00
Michael Rennie b225731a2f Popup a dialog if we haven't granted Android storage permissions. 2016-11-11 20:34:04 +01:00
baldurk 5286f950ff Add processing to different formats and max size while fetching thumb 2016-11-02 23:39:35 +01:00
baldurk 8f4a55a3b5 Set all processes under a given UI instance to log to the same file.
* Using OS-specific append writing functions instead of simple fopen/
  fwrite/fclose we can guarantee that multiple processes writing to the
  same log file won't trash or interleave their log output.
* To make the logs readable the PID is now included along with the
  project/timestamp.
* After that, we make sure that when we launch a program we set the
  output log to the same file as the parent UI. This keeps all the logs
  together and removes user confusion over which logfile is needed.
* We also move all of RenderDoc's temporary files under a RenderDoc
  folder in the temp folder, instead of scattering the files in the root
2016-11-02 23:37:38 +01:00
Michael Rennie d38ad5e2c9 Make APK file itself depend on renderdoc & renderdoccmd.
Previously the custom command wasn't running when .so's changed.
2016-10-13 13:39:28 +02:00
baldurk 528ffcf2a7 Avoid symlinking in favour of copying, and copy apk to root /bin folder 2016-10-12 22:08:48 +02:00
Michael Rennie 7a4c2f9546 Android cmake target for RenderDocCmd.apk
cd android-build
cmake -DBUILD_ANDROID=1 ..
make apk
2016-10-12 17:01:28 +02:00
baldurk 9f4a60028e Handle injecting environment variable params
* This also fixes the problem of capturing 32-bit programs with 64-bit
  RenderDoc failing to properly insert environment variables and
  error'ing when it tries to do it directly.
2016-09-28 17:55:45 +02:00
Ian Elliott f9024b2eb3 Add 'android:exported="true""' to "AndroidManifest.xml" file.
This seems needed for non-rooted devices.
2016-09-15 16:10:50 -06:00
Ian Elliott e3a51a239f Change "AndroidManifest.xml" for Android SDK Version 9 -> 23.
Vulkan requires at least API level 23.
2016-09-15 16:10:45 -06:00
baldurk 541c2f2d99 Add copies to ./bin for renderdoccmd & librenderdoc.so
* This allows qrenderdoc to link properly when opened directly in
  qtcreator, as otherwise it doesn't know where to link to the generated
  librenderdoc.so somewhere in CMake's build directory
2016-09-14 17:31:45 +02:00
baldurk 6518d8bdf8 Don't rely on data files being exported from .so, add explicit function 2016-09-12 17:40:28 +02:00
baldurk d3e4790ee8 Add command to renderdoccmd that will handle vulkan layer registration
* This is similar to the button on the capture dialog of the windows UI,
  except on linux the situation is a bit more complex as layers can be
  registered in two different system locations (one for distro packages
  and one for non-distro stuff), as well as in $HOME.
* On linux we make sure the json always contains an absolute path so we
  can tell from any given build whether or not a json is our own or not.
* By default we now install the json to /etc since /usr is reserved for
  proper distro packages, and shouldn't be written to by 'make install'.
  There's a CMake variable for overriding this for anyone who wants to
  make install into a custom folder (maybe for packaging).
2016-08-26 13:35:31 +02:00
baldurk 3693a17c73 Tiny tweak to renderdoccmd usage output 2016-08-25 21:07:40 +02:00
baldurk 90604c6d9c Print custom lines of API support on the version string of renderdoccmd
* An easy way to check what support is compiled into this binary.
2016-08-25 21:07:40 +02:00
baldurk 6819f22181 Tweak aliases for help/version to cover a couple of more cases 2016-08-25 21:07:40 +02:00
baldurk 5393d939fd Fix crash if replay renderer doesn't create 2016-08-25 21:07:40 +02:00
Michael Rennie 80b2974b7e Pass in apk parameters via am start ... -e renderdoccmd "args"
Examples:
adb shell am start -n org.renderdoc.renderdoccmd/.Loader -e renderdoccmd "remoteserver"
adb shell am start -n org.renderdoc.renderdoccmd/.Loader -e renderdoccmd "replay /sdcard/capture.rdc"
2016-08-25 14:42:14 +01:00
Michael Rennie e95813c5ae RenderDocCmd.apk requires Internet manifest permissions to use sockets.
Also cleaned up the manifest file.
2016-08-25 11:54:49 +01:00
baldurk 5d859dfe5a On linux set the rpath to $ORIGIN so that librenderdoc.so will be found
* Distributions will just be a tarball with binaries and library, so if
  the user doesn't install it somewhere in LD_LIBRARY_PATH, we want it
  to still work.
2016-08-25 11:48:30 +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 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 d63e3b89ad Add support for copying files back from remote server 2016-08-19 17:26:24 +02:00
baldurk f8b3fd3e1e Update renderdoccmd for new remote server code, add daemonise for server 2016-08-19 17:26:08 +02:00
baldurk 481a28dc29 Rename RemoteAccess to TargetControl to better disambiguate RemoteServer 2016-08-19 12:23:19 +02:00
Michael Rennie 396b83699b Fixed vulkan library used for Android replay, plus cmdline args. 2016-08-10 12:21:40 +02:00
baldurk a5c7620d24 Add install rules for renderdoc lib & binaries 2016-08-02 16:02:41 +02:00
Michael Rennie e08ce7239c Android build fixes 2016-08-02 11:52:12 +02:00
baldurk 39f453b166 Rename replay host to remote server, consistently. 2016-08-01 19:38:21 +02:00
baldurk 8b5f3de916 As DS_SETFOREGROUND doesn't work, move error reporter in/out of topmost
* This will guarantee the window is brought to the front, but it won't
  keep it there and be annoying.
2016-08-01 14:56:21 +02:00