Commit Graph

241 Commits

Author SHA1 Message Date
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 567a236034 Allow using hex formatting strings for custom constant buffer layouts 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 6060bb9fcb Fix indirect enum order 2016-10-21 21:44:24 +02:00
baldurk 459619ff0c Don't try to access file on local disk in statistics. Refs #400 2016-10-19 19:12:41 +02:00
baldurk cf5bf6f166 Track buffer usage as Indirect parameter buffer 2016-10-18 15:31:43 +02:00
baldurk 4253094557 Track resource event usage 2016-10-18 15:31:41 +02:00
baldurk 1f610a8b31 Treat D3D11 and D3D12 the same around the UI (for naming things, etc) 2016-10-18 10:38:53 +02:00
baldurk 820b343ef3 Remove redundant numSubresources struct member that was just mips*slices 2016-10-14 16:19:15 +02:00
baldurk c37ee2bb03 Display table index for root sig elements 2016-10-14 09:58:15 +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
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