Commit Graph

38 Commits

Author SHA1 Message Date
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
baldurk 2100344636 Fix logic to ensure we don't silently drop manual update checks 2015-09-15 18:43:06 +02:00
baldurk 2d12d5abee Add an update dialog that shows update notes & does upgrade smoothly 2015-08-30 00:11:48 +02:00
baldurk b593f7446e Fix picking up global control shortcuts incorrectly 2015-07-19 13:46:24 +02:00
baldurk 26cf1f8541 Make Ctrl-# shortcuts for EventBrowser bookmarks work anywhere 2015-07-15 21:37:56 +02:00
baldurk f6527107dc Add try {} catch to handle exceptions thrown from IO operations 2015-07-07 19:06:31 +02:00
baldurk 7a1cc84f41 Keep temporary log around to be able to save multiple times. Closes #130
* Previously if a temporary log was saved once, it would be moved there,
  so the user could in theory delete it and lose the only copy of the
  log.
* Now the temporary log is held until it's closed in the UI, to be able
  to be saved again. If the user saves the log though, this will stop
  any "unsaved log" prompts in the main UI window, so there is nothing
  stopping the user from saving the log, deleting that copy, then
  closing and they'll lose the log without prompt.
2015-04-12 18:37:16 +01:00
baldurk 6208e3992d Fall back to WARP if D3D11 hardware isn't present. Closes #121
* If hardware support for feature level 11 isn't present, fall back to
  the WARP software rasterizer. This will support everything needed, but
  it certainly won't run well.
* There are loud warnings - I added a debug message to the debug errors&
  warnings window so the status bar will indicate that, and it's in the
  title.
* At most once every 3 weeks there will also be a message box pop up
  when loading a log, to remind the user so that it isn't forgotten, as
  for obvious reasons this is not the intended use-case (hopefully once
  per 3 weeks isn't too often to be annoying).
2015-02-01 19:57:09 +00:00
baldurk 04f1d4a378 Centralise debug message processing, and allow adding custom warnings
* This will allow the adding of things like 'redundant api call' for calls
  that have no effect, as well as potential problems like drawing with an
  empty viewport, or similar things that are common problems. Reading out-
  of-bounds on buffers etc is a good example of 'defined' behaviour that
  is probably not desired.
* These heuristics could also identify potential performance problems.
* It also supports adding debug messages after log-load time, so you could
  do an additional extra-strength pass, or do a detailed check of one
  draw call (e.g. a broken draw, to try and figure out the problem). If
  there are any unread debug messages, the status bar will flash and the
  debug messages window will show a count as (N).
2015-01-11 00:20:50 +00:00
baldurk 2040a57e5d Check for new versions even if we think one is available
* This way if someone updates their install without clicking the menu item
  to clear this flag, it will still detect the update after a few days.
* (And when I forget to update which beta is latest, it will fix itself
  eventually. Oops).
2014-11-27 21:08:41 +00:00
baldurk 65df5a9192 Check file hasn't been removed out from under us before saving 2014-11-15 12:21:27 +00:00
baldurk 29894e4db3 Add Interactive/script running python shell window 2014-10-10 21:30:40 +01:00
baldurk 2cebc9866f Fix WindowFromPoint P/Invoke 2014-10-06 17:40:30 +01:00
baldurk 09863d920b [Refs #87: Static Analysis] Fix P/Invoke - C# point varies on x86/x64 2014-10-05 19:01:28 +01:00
baldurk e749f42876 [Refs #87: Static Analysis] string compare as uppercase or by length 2014-10-05 19:01:25 +01:00
baldurk 81e812b5f3 Add image viewer so that an image can be loaded as a faux-log
* This adds the ability to drag in/open up a dds or jpg file and get all
  the usual texture viewing and manipulation options.
2014-09-25 16:27:17 +01:00
baldurk d661f17a05 Update things to point to the new builds page available 2014-09-18 18:41:48 +01:00
baldurk 0292f5f140 Beta versions check for updates with their version & commit hash
* This will allow official and beta releases to have parallel update tracks
  as planned
2014-09-17 18:33:26 +01:00
baldurk 960387d485 Add a command line parameter --remoteaccess to connect to instance
* This is useful in e.g. a renderdoc-aware application that has voluntarily
  injected renderdoc, and then wants to boot the UI to automatically open
  up the management connection
2014-09-01 21:15:23 +01:00
baldurk be3ee7f915 Add support for 'beta' builds
* Beta builds will be between nightlies and official releases in terms of
  stability. Tested at least to make sure there are no obvious bugs, but
  haven't been through 1-2 weeks stabilising period.
* Beta builds will upload crash reports, so I can get early warning of any
  bugs that are creeping in on master.
2014-08-25 12:41:29 +01:00
baldurk 4ccc7d3901 Update email in code & add menu item for nightly builds 2014-08-22 08:13:21 +01:00
baldurk 74a0330271 Ensure C# UI uses consistent culture on all threads. Closes #72
* This means that e.g. decimal separator will always be . and similar
  effects, which avoids the need to have culture specific formatting or
  special-case handling around CSV export etc.
2014-07-23 08:36:05 +01:00
baldurk f0c4cfe51d Handle exceptions when saving config files and alert the user 2014-06-16 23:11:03 +01:00
baldurk c38affcded Initial commit of existing code.
* All renderdoc code up to this point was written by me, history is available by request
2014-05-02 08:33:01 +01:00