Commit Graph

228 Commits

Author SHA1 Message Date
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
baldurk bfcfcd37b5 Make sure DSVs show up with their view parameters properly. 2016-09-28 15:51:54 +02:00
baldurk 06e6677616 Divide up register spaces by shader stage (namespacing same as DX11) 2016-09-23 11:41:16 +02:00
baldurk 5951ed723b Pass resource state data per-resource through for D3D12 2016-09-22 17:05:28 +02:00
baldurk db3181e7bb Implement D3D12 pipeline state, with shader resources 2016-09-22 16:55:41 +02:00
baldurk b9b419c86a Process root signature elements into pipeline state 2016-09-22 12:05:47 +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 d40b87aed0 Rejig how root signature data is organised in pipeline state 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
baldurk 6521a6b782 [Coverity] Fix some null checks 2016-09-14 18:28:53 +02:00
baldurk e88722f000 [Coverity] String.Replace is not in-place but returns a new string 2016-09-14 18:28:52 +02:00
baldurk 3ce3fbe025 [Coverity] Fix some possible divide by 0 cases 2016-09-14 18:28:51 +02:00
baldurk b493865349 Make members of TextureSave class not struct, so python can modify them 2016-09-12 12:51:14 +02:00
baldurk 668e445778 Allow C# side manual construction of ResourceIds from integers
* This is primarily for ease-of-use from python scripting
2016-09-08 14:53:23 +02:00
baldurk b36475cf9c Remove now-unused functionality, context filter and deferred events 2016-09-05 17:55:12 +02:00
baldurk fb418f883e Add a button to pipeline state view to save shader raw contents to file
* The exact contents depend on the API - on D3D11 this is the bytecode
  blob, on Vulkan it's the SPIR-V. On OpenGL it is just a concatenation
  of all the source files passed in sequence.
2016-08-30 16:43:52 +02:00
baldurk a35c88e577 Close some minor UX holes when live-connected but without replay context
* If there's no replay context we can still use the live connection to
  copy and delete captures remotely. Try to use that whenever possible
  and warn the user when it's not possible (i.e if the program has been
  closed and there's no replay context, we have no way to access the
  files anymore).
* If the user tries to open a remote log without a replay context,
  prompt them either to swithc to a replay context on that host or to
  save the log locally.
2016-08-30 11:55:36 +02:00
baldurk 1efaca1883 Store view with EventUsage, and use to filter pixel history. Refs #341 2016-08-29 15:35:33 +02:00
baldurk e8e3d50c86 Expose the different local and remote renderers to the UI 2016-08-24 15:53:58 +02:00
baldurk f8bbedeb8b Ping the connected host regularly and check other hosts at lower freq.
* This lets us detect when a remote server has been disconnected and
  needs to be restarted, as well as alerting the user if this happens in
  the middle of a replay session.
* Pinging other hosts means the context switcher is reasonably up to
  date if one of them comes up.
2016-08-23 15:21:52 +02:00
baldurk 27b7077c36 Add versioning into remote server protocol 2016-08-23 13:02:07 +02:00
baldurk 91bf3ff3fc Handle empty strings in marshalling (NULL elems and count == 0) 2016-08-19 17:26:36 +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 aebed0e900 Expose directory listing functions to C# 2016-08-19 17:26:28 +02:00
baldurk 87c978f71a Add functionality to copy captures to the remote server for replaying 2016-08-19 17:26:25 +02:00
baldurk d63e3b89ad Add support for copying files back from remote server 2016-08-19 17:26:24 +02:00
baldurk 8a5d300e78 Use custom exception for replay creation failures 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 84baa6d752 Partially implemented support for capturing & opening logs in a context 2016-08-19 17:26:12 +02:00
baldurk 724fef7bb6 Don't specify logfile for remote triggered captures 2016-08-19 17:26:11 +02:00
baldurk 8bd25559a4 Add function to shutdown remote server over connection 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 4e450dbfcc Rename RemoteRenderer to RemoteServer 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 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 12e0c301af Handle themes with light text when picking contrasting colour. Refs #315 2016-08-05 11:19:56 +02:00
baldurk 39f453b166 Rename replay host to remote server, consistently. 2016-08-01 19:38:21 +02:00
baldurk 9bc7e99d83 If no pixel shader is bound, don't show shader output in pixel history 2016-07-25 18:27:19 +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 28c1768397 Add menu item to jump from pixel history modifications to each primitive 2016-07-22 14:40:40 +02:00
baldurk f492ddab27 Add missing handling of uscaled and sscaled formats 2016-07-21 16:06:10 +02:00
baldurk 7923ad15a8 Fix exponential float formatter to properly use min/max figures
* Previously it was treating maxfigures as the required length of the
  fractional part, so you'd get a lot of pointless 0s. it should be the
  number of significant figures, so we pretty much reuse the non-exp
  formatter.
2016-07-21 13:58:21 +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 73dc89f25a Allow specifying a listen interface and port, for remote replaying 2016-07-12 17:39:22 +02:00
baldurk 982273bbd3 Detect and show sample mask failures in pixel history. Refs #296 2016-07-11 12:32:49 +02:00