Commit Graph
195 Commits
Author SHA1 Message Date
Michael Rennie d249faacd3 Test Android target connection for up to MaxConnectTimeout seconds.
Added new setting to SettingsDialog, and passed it to native code via
RenderDoc::Inst().GetConfigSetting("MaxConnectTimeout")
2016-12-24 19:22:10 +00:00
Michael Rennie f146d40245 Grant captured app Android permissions to write & read to storage.
Some apps do not request for these permissions at startup, so the GUI will
grant these with ADB commands when we start an app for capture.
2016-12-15 17:29:04 +00:00
baldurk c810a96300 Keep debug log the same even when going via cap32for64 2016-12-08 19:04:57 +00:00
baldurk ddd6eac703 Add some API type functions into headers 2016-11-25 14:15:33 +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 8d0915401f Unify feature macro handling 2016-11-07 18:14:49 +01:00
baldurk 5a5c576a33 Allow TGA and PNG to discard/flatten alpha as desired. Refs #407
* DDS will always save the format entirely literally, and the float
  formats do not support alpha processing currently.
* TGA and PNG will either discard the alpha and write entirely opaque,
  or they'll include it in the file. Blending to colour or checkerboard
  is not supported.
2016-11-02 23:39:35 +01:00
baldurk 5286f950ff Add processing to different formats and max size while fetching thumb 2016-11-02 23:39:35 +01:00
Michael Rennie bcb9914665 Start remoteserver and captured packages by adb commands in native code.
Use adb to enumerate installed 3rd party packages in capture dialog.
Cleaned up all the "adb:" strcmp's.
2016-11-02 16:10:29 +01:00
Michael Rennie 8899cb8e73 If adb path is set, use adb devices to enumerate Android devices.
Process::LaunchProcess() optionally returns the child's stdout & stderr.
Added carriage return to string trim().
2016-11-02 16:10:29 +01:00
baldurk f368a65843 Add easy support for self-hosted captures on windows only
* By renaming the renderdoc and renderdoccmd projects to something else
  (say 'selfhost' and 'selfhostcmd') then they can be used to capture
  renderdocui and the replaying that's happening.
* Only supported on development builds and might break down, but it's
  handy to have as an easy to enable option.
* There's also a couple of handy python functions exposed -
  renderdoc.StaticExports.StartSelfHostCapture(string dllname)
  renderdoc.StaticExports.EndSelfHostCapture(string dllname)
  which can be used to start and stop the capture around e.g. a shader
  debug operation or a pixel history operation or something similar.
2016-10-25 19:50:04 +02:00
baldurk b8520a274d Fix compile errors on CI targets 2016-10-18 19:35:01 +02:00
baldurk 402ef54f0d Enable QT_MESSAGELOGCONTEXT and debugging info in release builds 2016-10-12 13:02:03 +02:00
baldurk e64359b40d Fix picky clang warning about comparing enums, which is on purpose 2016-10-07 22:08:03 +02:00
baldurk bfac4adfb8 Expose full logging to UI layer, pipe Qt messages etc into main logs 2016-10-07 15:58:45 +02:00
baldurk 44706c3f7b Need to remap for 8-bit formats with less than 4 channels 2016-10-06 18:07:02 +02:00
baldurk 0f4d43cd37 Make minmax/histogram aware of custom shaders. Refs #385
* This moves those functions relative to an output instead of the
  renderer, so they pick up the settings etc from the output
  configuration.
2016-10-04 19:54:30 +02:00
baldurk 9ee4653a7a Add triangle size overlay, showing heatmap of triangles < 4x4 in area 2016-10-02 20:04:43 +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
Michael Rennie 5d23e39994 Remap texture formats across different APIs.
For example ASTC/ETC2 textures in Vulkan need to be forced to RGBA8 to be
displayed by D3D11.

IReplayDriver has virtual method IsTextureFormatSupported(ResourceFormat)
so each API can decide if a format should be converted.

Parameters to GetTextureData() are moved to a struct, to save any
non-default behaviour needed for fetching texture data into the proxy.

MakeDXGIFormat now returns DXGI_FORMAT_UNKNOWN for unsupported formats
instead of asserting. We use this to determine whether to remap.
2016-09-28 16:24:34 +02:00
baldurk 0f660e3ec2 Create and fill out D3D12 pipeline state, without shader resources.
* We make shaders into fake resources with IDs, so they can be
  identified individually (for replacement, fetching reflection data,
  and things like that). This is a little but ugly but worth it for the
  simplicity it will provide everywhere else.
2016-09-22 12:05:47 +02:00
baldurk 8b1a26287d Update D3D12 pipeline state to roughly match D3D12 state 2016-09-22 12:05:47 +02:00
baldurk af9017af0a Add D3D12 pipeline state (state and viewer duplicated from D3D11) 2016-09-22 12:05:47 +02:00
Michael Rennie ab71450fb0 Add offset to Android network ports, to differentiate from localhost.
This requires adb forward to include the offset, for example:
adb forward tcp:38970 tcp:38920
adb forward tcp:39970 tcp:39920
2016-09-15 13:42:05 +01:00
baldurk c9eeef3151 [Coverity] Add proper NULL check before comparison 2016-09-14 17:41:14 +02:00
baldurk 4dc9857341 detect adb: (invalid in normal hostname) as android remote target
* For now, just redirect to 127.0.0.1 and assume the user has proper
  port forwarding set up, but in future we'd do this ourselves and maybe
  parse out a device name after the adb:
2016-09-12 20:05:51 +02:00
baldurk 3695d7de6d Save EXR images in ABGR channel order, for compatibility with viewers
* It seems many viewers don't look at the order specified, and just
  assume that the channels are in ABGR order. Changing it won't affect
  any loaders that do respect that order.
2016-09-10 16:26:19 +02:00
baldurk d461e40711 When an unsupported API version is requested, print supported versions 2016-09-08 15:51:06 +02:00
baldurk b36475cf9c Remove now-unused functionality, context filter and deferred events 2016-09-05 17:55:12 +02:00
baldurk 9acd1777cd Fully initialise structure 2016-09-02 14:48:07 +02:00
baldurk c539510da8 Only flip uncompressed texture data out of GL when saving to disk
* When transferring over the network, we keep texture data consistently
  in GL origin-bottom-left order. This means we can just flip images on
  display and otherwise have things consistently behaving, while still
  preserving the behaviour of flipping on saving to disk to try and
  mostly 'do the right thing' when saving an image.
* The behaviour should be the same as before except for remote proxying
  which is fixed. The behaviour for GL is still that compressed images
  saved as compressed will appear to flip vertically from what is
  natively displayed in the UI, but I think this is the only sensible
  way to behave (and anyway, flipping compressed images is far too
  involved to be worthwhile).
2016-08-24 15:53:59 +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 a8cfc753df Bullet proof the replay renderer against the proxy going away suddenly 2016-08-23 13:37:24 +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 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 481a28dc29 Rename RemoteAccess to TargetControl to better disambiguate RemoteServer 2016-08-19 12:23:19 +02:00
baldurk 39f453b166 Rename replay host to remote server, consistently. 2016-08-01 19:38:21 +02:00
baldurk 535cec5b10 Don't error if GetBufferData() is called with ResourceId 0, just return 2016-07-25 18:27:15 +02:00
baldurk fefb6b2526 Pass selected slice/face and sample idx to custom vis shaders. Refs #304 2016-07-25 11:39:47 +02:00
baldurk ebb889a7ee Report supported windowing systems from replay, and choose which to use
* This is primarily for vulkan, which supports either xlib or xcb (and
  not necessarily both). GL still only supports xlib, windows and
  android only support one system regardless of API.
* This should also support xlib again for fetching keystates etc.
2016-07-22 18:23:30 +02:00
baldurk f492ddab27 Add missing handling of uscaled and sscaled formats 2016-07-21 16:06:10 +02:00
baldurk e8e1b34d26 [Coverity] Remove some dodgy code to iterate shader stages 2016-07-20 18:42:10 +02:00
baldurk 6545625874 [Coverity] Fix a bunch of partially-initialised structure warnings 2016-07-20 16:45:06 +02:00
baldurk aea036c34c Implement multi-draw indirect support for vulkan 2016-07-20 14:09:56 +02:00
baldurk bde21b0c73 Render custom shaders at the selected mip level. Refs #302 2016-07-19 20:40:11 +02:00
baldurk 5a64a78d2a Add multiple-frame capture, grabbing N successive frames to captures
* In-application API is bumped to 1.1.0 as a new function pointer is
  added to the end of the structure.
* This comes with some caveats - capturing a frame is fairly heavy
  weight, so capturing a frame might throw off timing-related bugs you
  are trying to capture in subsequent frames. If you know your bug is
  every other frame though, capturing two can be a quick way to ensure
  you get it.
2016-07-18 18:51:36 +02:00
baldurk 504b18ab3f D32S8 type formats are 8 bytes per pixel, not 5. 2016-07-13 15:52:19 +02:00
baldurk ced8a62af6 Add replay command (with optional remote replay) 2016-07-12 17:39:23 +02:00
baldurk 73dc89f25a Allow specifying a listen interface and port, for remote replaying 2016-07-12 17:39:22 +02:00