Commit Graph

325 Commits

Author SHA1 Message Date
baldurk 40b86b63fb Update code for new SSL libraries in new Qt version 2021-01-27 17:06:09 +00:00
baldurk 3f637e0d9b Link to renderdoc-contrib repository 2021-01-27 12:58:51 +00:00
baldurk 026da176bb Update copyright years to 2021 2021-01-13 13:56:10 +00:00
baldurk e5f4ca7bb8 Remove use of const char * in public API and OS specific where possible
* This prevents unnecessary conversions back and forth between rdcstr and const
  char * when going through interfaces. In the OS specific layer this is rarely
  an issue because most of the implementations don't convert to rdcstr, but it
  is convenient to be able to pass in an rdcstr directly. The few cases where
  there's an unecessary construction of an rdcstr is acceptable.
* A couple of places in the public API need to return a string from a global
  function, so can't return an rdcstr due to C ABI, so they still return a const
  char *.
* Similarly const char * is kept for logging, to avoid a dependency on rdcstr
  and because that's one place where unnecessary conversions/constructions may
  be impactful.
2020-12-07 17:44:50 +00:00
baldurk df6fec13f9 Remove use of automodule in docs
* One automodule in a file for our modules is way too much, so we split it into
  files. Unfortunately this means that only one file can have those classes and
  functions be linkable from elsewhere.
* Instead we bite the bullet and manually curate the items into pages, and at
  the same time subdivide the 'enums and data' page more which is a general
  readability and usability win as well.
* We also add some previously not-included functions, and add a doc-build time
  check to ensure that functions and classes aren't omitted from the
  documentation in future
2020-12-07 17:44:50 +00:00
baldurk f38c4c366d Add a ctrl+enter shortcut in capture dialog to launch the capture 2020-12-02 17:44:47 +00:00
baldurk 935cb113ed Add new string type rdcinflexiblestr specifically for structured data
* This is a string type which heavily optimises for immutability and minimal
  storage. It only contains one pointer to the string data and always
  reallocates on modify. For compile-time literals it doesn't modify or
  allocate.
* On x64 we use the top bit in a tagged pointer to store a flag of whether it's
  heap or literal, on other platforms it uses a separate field (meaning another
  pointer sized value effectively, including padding).
* This is best for structured data which tends to use a lot of immutable strings
  for type/name information, and only a few for actual string data (which are
  only allocated once and aren't modified after that). Similarly we rarely want
  to know only the size of any of these strings, we want the whole string so not
  explicitly storing the size is not a big deal.
* Overall this reduces SDObject from 128 bytes to 80 bytes.
2020-10-27 15:15:19 +00:00
baldurk c58f3edafa Support lazy-generating structured data objects for large arrays
* For certain very large arrays it can be nice to defer generation of structured
  data until it's needed, since often maybe only a handful of elements may be
  needed (or commonly none at all).
2020-10-27 15:15:19 +00:00
baldurk 394896a3c9 Hide list of children completely in structured data
* This makes it easier to enforce object ownership, as well as gives us options
  for e.g. generating structure data on demand lazily.
2020-10-26 10:24:47 +00:00
baldurk 381fdbe06b Fix missing format argument in error message 2020-09-17 17:43:28 +01:00
baldurk ecd23041a4 Don't delete thread in LambdaThread until destructor
* This means a non-self deleting thread can be waited for or queried about still
  after it's completed.
2020-09-04 18:34:28 +01:00
baldurk 482bdbae6f Allow building from a custom Qt more easily on windows
* Setting RENDERDOC_QT_PREFIX64 or RENDERDOC_QT_PREFIX32 environment variables
  pointing to a Qt install root will use that instead of the built-in Qt.
2020-08-28 19:06:06 +01:00
baldurk 2b990bdf46 Remove RightToLeft property that was accidentally added 2020-08-14 19:19:16 +01:00
alex 9414beaed2 Support multiple custom shaders directories for Texture Viewer 2020-06-16 11:47:52 +01:00
alex c1612f5d46 Add Texture Viewer custom shaders directory setting 2020-06-16 11:47:52 +01:00
baldurk c451bdc22c Add extra error checking into VirtualFileDialog 2020-06-03 18:41:11 +01:00
baldurk 7a821c20bd Add custom context menu for all tree views with expand/collapse and copy 2020-05-29 20:09:13 +01:00
baldurk b2d85982a5 Hide capture progress bar if the application disconnects mid-capture 2020-05-26 16:46:14 +01:00
baldurk 7539533cb9 Populate new child processes immediately in capture connection panel 2020-05-22 22:09:44 +01:00
tabi.katalin f1bd727dff Add support for ARM counters
Adding support for ARM counters via a third-party lib.
The main target platform is Android.
2020-05-20 20:19:17 +01:00
baldurk 08cf66abce Fix racing busy signals when connecting to remote servers 2020-05-15 19:03:26 +01:00
baldurk 54abdc3d14 Fix racy cross-thread access to target control connection. Closes #1857 2020-04-29 18:48:51 +01:00
cperthuisoc 0df63aa8d0 Added system packages as hidden folders in the Executable Path dialog
android-only change
2020-04-16 18:18:52 +01:00
baldurk 2bb278b9fd Highlight stale/unrecognised settings in the config editor 2020-04-03 15:19:28 +01:00
baldurk 3ec60fcde1 Don't crash on config settings with no key
* This can happen if the config setting is unrecognised but loaded from the
  config file anyway.
2020-03-30 21:47:39 +01:00
baldurk e6a9632d81 Do not allow non-absolute paths when saving textures. Closes #1795 2020-03-30 21:47:24 +01:00
baldurk a9e1c46e46 Fix crash if some settings aren't available e.g. due to the platform 2020-03-23 11:00:01 +00:00
baldurk c52e1a46d1 Add missing vulkanlayer register parameter on linux 2020-03-23 10:51:24 +00:00
baldurk 7542482ffb Fix missing Qt header 2020-03-19 09:25:47 +00:00
baldurk d408f77241 Add configuration system for core renderdoc module
* This allows persistent config storage and registering tweak variables that
  works independent of the UI's configuration.
* Config vars can be debug only, which means they will be compiled out in stable
  version releases. This allows for debug-logging tweaks that are available in
  all builds (including nightly builds) for diagnostic purposes, but have zero
  overhead in stable releases.
* Variables have a loose hierarchy defined with _ or . to separate nodes.
2020-03-18 17:34:59 +00:00
baldurk 936e6372cb Remove use of 3rdparty/ prefix from includes
* We instead always have 3rdparty/ in the relevant include search paths and rely
  on that. Each library still has its own unique base dir within 3rdparty to
  clarify where the include is coming from.
2020-03-11 18:00:53 +00:00
baldurk 6579dfc666 Add protection against target control connection dropping immediately 2020-03-05 10:39:36 +00:00
baldurk 66931b146a Remove extra margin on replay settings tab 2020-02-24 18:10:56 +00:00
baldurk f7cb742a4c Display capture file size in capture connection window. Closes #1723 2020-02-14 19:31:59 +00:00
baldurk 5977c2ef37 Fix compilation 2020-02-13 12:45:51 +00:00
baldurk 5e6ec417c1 Add a global font scale option in settings window
* This lets the user override the default application font.
* Unfortunately Qt seems to behave inconsistently with font scaling from the
  system, so we take the font size initially from QApplication::font() (which
  doesn't always pick up the font size) and scale from there. While this might
  cause some font scaling to be lost it does mean at least we have a consistent
  scale, as otherwise you get some text scaling and others not.
2020-02-13 11:01:45 +00:00
baldurk 7dd116abd4 Remove redundant/tautological comparisons identified by PVS Studio 2020-01-21 18:28:56 +00:00
baldurk 42841e23be Expose vulkan layer registration in renderdoccmd on win32. Closes #1690
* This is needed so that the functional tests can elevate and run renderdoccmd
  to register the vulkan layer, if needed.
* At the same time remove the old spammy message and ignore flag - this dates
  back to before the UI existed, and that should be the way users run RenderDoc
  generally and it has a good UI for walking through layer registration if
  needed.
* The command is always available, but will only show up in help if attention is
  needed.
* Also fix registering installs on shared drives.
2020-01-20 11:46:48 +00:00
baldurk e9182377e5 NULL out connection handle after shutdown 2020-01-13 16:55:05 +00:00
baldurk 2916c0f9f7 Update copyright years to 2020 2020-01-06 16:20:45 +00:00
baldurk 27098f8f70 Give our threads debugger-friendly names 2019-12-19 21:50:13 +00:00
baldurk e302ecfe83 Don't leak target control handle 2019-12-17 15:51:16 +00:00
baldurk 14d01ff995 Remove support for serialising STL types, remove STL interop 2019-12-16 18:10:32 +00:00
baldurk ff08748238 Ensure all files have trailing new-lines and enforce with clang warning 2019-12-02 20:28:05 +00:00
baldurk 4458ab3205 Remove assumptions that captures are always frames
* Previously we had "Frame X" and "Start of Frame" hardcoded in the event
  browser, and the end of frame was in many cases assumed to be a present call.
  However with the in-application API this is not necessarily true.
* Presents are now serialised separately in all APIs and displayed wherever they
  happen in the frame, and if there is no present at the end of the frame an
  "End of Capture" marker is inserted. Similarly API-defined captures are not
  given a potentially misleading frame number.
2019-11-21 17:09:01 +00:00
baldurk 13f796a0ef Add an error if intent arguments aren't formatted correctly. 2019-11-19 23:20:55 +00:00
Lionel Landwerlin 80183c068a Expose Vulkan performance counter from VK_KHR_performance_query 2019-11-18 22:01:12 +00:00
baldurk 7533c6b7ac Improve handling of different cases registering vulkan layer on linux
* In particular, if there is a mismatched layer registered under e.g. /etc then
  we always need to elevate, even if the user wants their layer to be fixed and
  registered user-local.
2019-10-16 15:12:38 +01:00
baldurk e9dda8343f When deleting temp files, remove from the recent file list. Closes #1540
* If the UI was launched with a filename as a parameter to open the capture, it
  will be added to the recent capture file list. Only later (relatively
  speaking) if we make a capture connection will we realise that it is temporary
  and potentially delete the file. If we do so, remove the capture from the
  recent file list.
2019-10-10 16:48:42 +01:00
baldurk 62b9245215 Calculate basename by hand, for windows paths on linux 2019-09-18 11:18:28 +01:00