Commit Graph

73 Commits

Author SHA1 Message Date
baldurk 7ca1c2237c Tweak default capture save behaviour to 'soft' remember dir. Refs #335
* Rather than exclusively always opening at the default directory, it
  will only do that until a capture has been successfully saved - then
  it will re-use that previous directory. This is only remembered for as
  long as RenderDoc is open, thereafter it will revert back to the dir
  specified in the options.
2016-09-14 12:15:11 +02:00
baldurk b36fe219d9 Use default save directory from options. Refs #335 2016-09-14 11:40:03 +02:00
baldurk 80fbe84fb1 Don't crash if switching to a local context while a live capture is open 2016-09-12 20:04:59 +02:00
baldurk 1faf46ddc5 Handle StaticExports.GetVersionString() being missing
* If the user is somehow running a really new UI with old DLL, handle
  the exception and continue to allow the user to update without
  crashing.
2016-08-30 17:37:06 +02:00
baldurk 90beef8f3c Allow live capture windows to stay open if switching ctx to that host 2016-08-29 19:42:48 +02:00
baldurk 13b09e410b don't allow switching to the connected host 2016-08-29 19:42:17 +02:00
baldurk a2edad4f48 Slight tweak to dialog message 2016-08-29 16:12:22 +02:00
baldurk d98b4c0f97 Fix potential crash if timer check/probe is happening during shutdown 2016-08-26 17:04:31 +02:00
baldurk 52cf19e3b3 Fix possible crashes if remote hosts are deleted during processing 2016-08-26 16:04:07 +02:00
baldurk c68d5d94b1 Make the live-status probe less aggressive 2016-08-24 15:53:56 +02:00
baldurk c9474f5bc3 Handle connection errors properly, displaying the error message 2016-08-24 15:53:55 +02:00
baldurk 3e5d55d1d6 Add an option to choose the default save folder for captures. Refs #335 2016-08-24 15:53:52 +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 81b6b0653b Display the local filename even when copying to remote for replaying 2016-08-23 13:25:47 +02:00
baldurk 27b7077c36 Add versioning into remote server protocol 2016-08-23 13:02:07 +02:00
baldurk 4bc3dbcc9e Rejig update dialog to provide a bit more info and display RTF notes 2016-08-22 11:03:22 +02:00
baldurk 39b995fcfa Add a dialog to ask if the user wants to replay remotely 2016-08-19 17:26:37 +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 2fe43fab79 Don't try to copy a non-local log to the remote thost 2016-08-19 17:26:32 +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 fe08662e38 Handle non-local logs, make sure they are properly owned and deleted 2016-08-19 17:26:21 +02:00
baldurk 0207c74b90 Check remote server status at startup to pre-populate context chooser 2016-08-19 17:26:20 +02:00
baldurk 2060173049 Track busy and active connections and display in UI 2016-08-19 17:26:19 +02:00
baldurk 8a5d300e78 Use custom exception for replay creation failures 2016-08-19 17:26:18 +02:00
baldurk 84baa6d752 Partially implemented support for capturing & opening logs in a context 2016-08-19 17:26:12 +02:00
baldurk b1fcea3c3e When switching context, make a remote connection in the render manager 2016-08-19 17:26:10 +02:00
baldurk fa0b13f2ed Add context chooser to main window for choosing between remote servers 2016-08-19 17:26:09 +02:00
baldurk 4fde9b065f Expand remote host selection for attaching to handle remote servers
* Also remove some of the old remote-replay single-shot code handling.
2016-08-19 17:26:07 +02:00
baldurk 9a544e61af Rename ModalPopup to ProgressPopup 2016-08-19 17:26:06 +02:00
baldurk 610b22f600 Fix a lot of high-contrast inconsistencies or brokenness. Refs #315
* In a couple of places I had to resort to if(IsHighContrast) but mostly
  this is just using system brushes consistently or not assuming black
  text.
* The default DockPanel theme doesn't work well, so make a minimal high-
  contrast theme for it and assign it everywhere.
* The pipeline flow was using fixed colours, use system brushes for the
  different elements and switch based on high-contrast to ensure active
  and inactive stages are visible (using ActiveCaption looks bad on
  normal themes because it's a big block of colour).
* For some reason the flat toolstrip renderer doesn't handle white-on-
  black themes, but the system one does. It's a little clunkier but it
  shows up correctly without writing tons of custom painting code.
* Range histogram uses a properly contrasting colour for the border.
* Treelist views use a better system colour for selected rows when
  inactive and hovered rows (when high contrast).
* Mesh view grids have a system background instead of white
* Various things (pipeline state, mesh viewe) set text colour when
  colourising backgrounds of things instead of assuming black.
2016-08-05 12:46:56 +02:00
baldurk 5508f9f599 Handle duplicate contents being returned and dummy them. Refs #310
* Unfortunately too late for v0.30, but at least this will help anyone
  who upgrades v0.29 -> v0.31 or such.
2016-08-01 22:22:50 +02:00
baldurk 39f453b166 Rename replay host to remote server, consistently. 2016-08-01 19:38:21 +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 73dc89f25a Allow specifying a listen interface and port, for remote replaying 2016-07-12 17:39:22 +02:00
baldurk 11ee6e2e34 Allow dragging exes in anywhere and they won't be opened as logfiles 2016-06-20 17:30:29 +02:00
baldurk 10629ab92b Use https URLs to access renderdoc.org
* Previous versions accessing the http URLs will be redirected soon (as
  of time of writing this). The POST /bugsubmit won't be redirected as
  it's not feasible to redirect POST requests, but that will continue
  working.
2016-06-17 14:12:19 +02:00
baldurk 69705d9e99 Detect and report version mismatches to the user between core & UI 2016-05-19 20:45:13 +02:00
baldurk 281a3c93da Don't prompt to close a logfile if there's not one loaded 2016-05-09 21:50:10 +02:00
baldurk 898344c14c Persist the statistics viewer into window layouts 2016-04-13 00:38:51 +02:00
baldurk 70b99a4412 Remove antiquated 'multiple frames in one capture' support.
* Cleans up the code a bunch, this support is unlikely to ever return
  and if it does it will need a rethink anyway.
2016-04-13 00:28:09 +02:00
Michael Vance 973ee146a8 Support for a new 'Statistics' pane.
Notes
======
- Create a (hopefully) cross-backend performance statistics abstraction as part of FetchFrameInfo. This currently collects statistics about constant buffer binds, sampler binds, resource binds, client and server style resource updates (e.g. Map and UpdateSubresource), index & vertex buffer binds, and draws and dispatches. In my captures this covers approximately half of all API traffic. The rest is often shader sets, and then usual RS, OM, etc., that aren't currently tracked. During READING state parsing on the wrapped device context, record statistics about the calls and store them into the current frame info. We inspect objects occasionally to get things like their type for recording. It may be useful to expand this in the future to check bind types, etc. On the GL/Vulkan backends the stats data is never initialized and we display the same statistics data as before.
- Add a new statistics pane in the UI. A variety of shim arbitration/marshalling is provided to get the statistics data across the managed/native boundary. Removed the old statistics menu item. Currently the statistics pane is just a text log of various gathered data, with ASCII art (woo!) histograms. However in the future we would like to have image based historgrams as well as support for gathering statistics on a mask of stages, etc.
- Remove 'diagnostic' events (e.g. push/pop/marker) from the API call count as it distorts the API:draw call ratio.
- Add _First and _Count to ShaderResourceType and ShaderStageType for weak enumeration (weak due to int cast requirement).
- Provide utility functions Log2Floor for 32 and 64 bit types. These require OS specific clz, which are provided for Windows/VS and Linux/gcc/clang.

TODO
======
- UI toolkit based historgram, ability to set stages enabled for statistics, etc.
- Revisit necessity of gathering statistics across frames--apparently there is no multi-frame capture in a single log anymore?
- Revisit min/max/etc. gathering on the data--is there some way to improve this to not be so mechanical? Perhaps with field enumeration? However if moving to C++/Qt in future, possibly not a good time investment.
2016-04-11 21:23:05 -04:00
baldurk 019c0db6fe Support .cap files in File -> Open menu and drag & drop 2016-04-02 15:58:17 +02:00
baldurk 94cf36b991 Add saved logs to recent file list immediately. Refs #197 2016-02-29 19:17:05 +01:00
baldurk 2e0ffa7813 Batch update copyright years everywhere 2016-02-07 18:50:45 +01:00
baldurk 2cca0a53c3 Set the window title to the filename when saving a log 2015-11-13 22:29:29 +01:00
baldurk bf9e6c1156 Make sure to unset the update flag if we're on the latest version 2015-10-06 17:07:51 +02:00
baldurk c4d95421e0 Fix crash if main window is closed while update check is ongoing 2015-10-04 15:31:10 +02:00
baldurk ebe442d1d8 Update tips dialog and add a menu item for it. 2015-09-25 21:09:12 +02:00