Commit Graph

207 Commits

Author SHA1 Message Date
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
baldurk 9ab17f359f Name depth as depth/stencil to account for DS or stencil-as-uint views 2016-07-11 11:55:25 +02:00
baldurk 6608a965ed Fix sRGB handling on clear colours 2016-07-10 18:10:06 +02:00
baldurk 4268d8f58f Remove structure size and redundant 32-bit length field from FetchBuffer 2016-07-10 18:10:02 +02:00
baldurk edbd1ce89b Pass through view format as a type hint to texture display/sampling
* This is only applicable really on D3D11 where the underlying texture
  can be typeless, and a default interpretation as unorm/float won't
  necessarily how the texture is actually being used.
2016-06-27 12:10:21 +02:00
baldurk 3f4ec852ba Pass through image layouts for vulkan and display in tooltips. Refs #199
* Semi experimental for now - I'm not convinced that having a tooltip
  for every image element is the best UI. It will need some iteration.
2016-06-24 17:54:41 +02:00
baldurk 27bbbc39a4 Pass through number of mips/layers in Vulkan image views 2016-06-24 16:31:04 +02:00
baldurk 005a9ee226 Display swizzles on image views in vulkan pipeline view 2016-06-24 13:09:06 +02:00
baldurk f35a4c6b6b Use view format instead of resource format for Vulkan
* Since the Vulkan views are tighter and more strictly specified, we can
  always safely use the view format (in the non-mutable case it must
  exactly match the underlying resource's format).
2016-06-24 12:34:11 +02:00
baldurk a8457b56f6 Display required bytes of constant buffer if it differs from buffer size 2016-06-23 16:20:37 +02:00
baldurk f00049bed3 Fixup display&export of byte address and structured (with/no counter) 2016-06-23 12:17:58 +02:00
baldurk 494627c299 Display image barriers in texture usage dropdown and timeline bar 2016-06-22 19:04:08 +02:00
baldurk 5864c11fa2 Add support for D3D11.3 and D3D11.4 (minor). Refs #235. Refs #145
* Only one major piece of functionality is unimplemented and stubbed out
  - WriteToSubresource and ReadFromSubresource in concert with passing
  a NULL D3D11_MAPPED_SUBRESOURCE parameter to ID3D11DeviceContext::Map.
2016-06-21 21:08:26 +02:00
baldurk 6403b5a6d6 Use full pathnames for files, so we don't have duplicate keys in dict 2016-06-21 13:35:21 +02:00
baldurk 7884b0e825 Add HTML pipeline export for GL, and minor tweaks on Vulkan/D3D11 2016-06-09 17:37:16 -07:00
baldurk d41c9538de Add support for SPIR-V specialization constants 2016-06-07 11:35:44 -07:00
baldurk 947f7decb2 Add 'show all instances' mode, and make colours consistent. Closes #248 2016-06-03 17:34:26 +02:00
baldurk 6c39971374 Add proper support for immutable samplers. Refs #260 2016-06-01 16:39:18 +02:00
baldurk 094e79dee2 Greatly speed up 'attach to running instance' dialog in the 99% case
* 99% of the time, you'll only have localhost and the application will
  be running on the first ident checked which will return a valid socket
  almost immediately.
* Instead of continuing to search through each valid port before
  returning valid data, we change the enumerate function to just find
  the next valid port and return - so we can update the UI as soon as
  we have the first result.
2016-06-01 11:31:57 +02:00
baldurk ab84b84ba4 Add bullet-proofing to GetTextureData/GetBufferData
* So that it won't crash on invalid input but will just return empty
  data.
2016-06-01 10:44:44 +02:00
baldurk 54106a2108 Pass through marker colours to UI 2016-05-27 19:28:58 +02:00
baldurk 1914a8a029 For APIs with proper separate sampler objects use debug names. Refs #273 2016-05-26 23:51:09 +02:00