Commit Graph

84 Commits

Author SHA1 Message Date
baldurk 9bfcb76e0b Try to de-elevate after applying an update to not run UI as admin 2025-07-31 17:10:14 +01:00
baldurk 2322e165de Update copyright years to 2025 2025-03-14 18:54:37 +00:00
baldurk 5e03c30684 Properly initialise and teardown replay during qrenderdoc unit tests 2025-03-05 09:50:48 +00:00
baldurk b691f2421e Update vkconfig check 2025-02-06 17:55:07 +00:00
Stefano Bonicatti a0e52feba1 Fix stack-use-after-scope reading QT_QPA_PLATFORM env var
Setting QT_QPA_PLATFORM with putenv from a local variable
causes the environment to later still refer to it when it's out of scope.
Use setenv instead, as it copies the values provided.
2025-02-05 15:40:15 +00:00
baldurk f0aecfbfa3 Add a log message when vkconfig is detected and warned about 2024-10-19 01:21:47 +01:00
baldurk ce6b999995 Fix typo in warning message 2024-09-23 14:04:46 +01:00
baldurk 0cea7aae41 Add warning to users when vkconfig is detected
* This causes quite a few crashes on startup during Vulkan initialisation.
2024-09-20 13:30:32 +01:00
baldurk 9f4f0e6aa1 Update copyright years to 2024 2024-02-12 11:04:52 +00:00
baldurk 4a1d1896b7 Try to avoid being forced onto unsupported wayland path. Refs #3124 2023-11-13 11:45:39 +00:00
baldurk 9d39b8e1a8 Reformat code for clang-format 15 2023-09-05 11:02:08 +01:00
baldurk 3d5bbb216c Detect and separately report windows 11 2023-04-25 10:07:25 +01:00
baldurk d47e79ae07 Update copyright years to 2023 2023-02-01 12:23:32 +00:00
Jake Turner d34c2cf658 Do not clear catch failure return state 2022-06-27 11:03:22 +01:00
baldurk 8c6192d5bd Copy catch.hpp into qrenderdoc and run on --unittest in non-release 2022-05-20 14:15:31 +01:00
baldurk fcdea67879 Update copyright years to 2022 2022-02-17 17:38:32 +00:00
baldurk 966ab0a738 Add command line option to qrenderdoc to run a script with the UI open 2021-11-17 15:52:52 +00:00
baldurk 44db412b8d Speculative workaround for QWidgetPrivate::subtractOpaqueSiblings crash 2021-03-22 18:37:10 +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 d55cf930f8 Don't make command line parsing a fatal error 2020-09-04 14:59:17 +01:00
baldurk b5a6796240 Allow qrenderdoc command line python scripts to call sys.exit()
* Previously we'd catch the sys.exit "exception" and print it then show the
  window.
2020-08-31 13:10:38 +01:00
baldurk 3eaaf59319 Prefer floor rounding for Qt 5.14+ fractional DPI handling
* Non-integer DPI handling is fundamentally a broken concept, because UIs are
  essentially pixel art with some vector drawing. Rounding down half fractions
  seems to be a better tradeoff than rounding up or trying to render them as-is.
2020-08-27 13:19:21 +01:00
baldurk 36d74b32b9 Add optional output file for qrenderdoc unit tests 2020-06-11 20:06:43 +01:00
baldurk 8323eb75ee Don't enumerate GPUs while opening crash reporter 2020-03-20 16:16:51 +00:00
baldurk b38cbc1b0c Add explicit functions to initialise and shutdown replay. Closes #1685
* It's required for replay applications to call InitialiseReplay() before doing
  any work, and to call ShutdownReplay() once they're finished.
* This lets us do more heavyweight shutdown work before global destructors are
  being invoked and the RenderDoc instance is being destroyed.
* Anything that needs to be shut down during capture still has to happen in
  RenderDoc::~RenderDoc since we obviously can't get the application to call a
  shutdown function in that situation.
2020-01-30 13:39:15 +00:00
baldurk 2916c0f9f7 Update copyright years to 2020 2020-01-06 16:20:45 +00:00
baldurk 9463cdf785 Add better error checks and race condition protection in crash handling 2019-09-16 11:18:30 +01:00
baldurk 6d40bbb783 Add experimental wayland support. Refs #853
* This is only lightly tested and may break heavily. It is disabled by default
 and must be explicitly enabled.
* In particular this is only known to work for Wayland use at capture time.
 Wayland on replay is still unsupported. Known issues include: EGL pbuffer
 surfaces are not implemented on Wayland, Wayland cannot get window dimensions,
 and there are hangs/failures with GL and vulkan presentation with Wayland.
2019-09-02 15:02:27 +01:00
baldurk e2704fa2eb Add an abstracted interface around android-specific handling
* This makes it easier to use the same kind of interface to manage other kinds
  of devices.
2019-07-31 17:51:13 +01:00
baldurk 06f2e61b8f Refactor RemoteHost to be copyable with shared storage
* This allows RemoteHost handles to still be valid and usable (if returning
  empty data) when they are deleted/removed if the device is disconnected, as
  well as providing better multi-thread access (they lock internally)
2019-07-31 17:51:12 +01:00
baldurk 38f0d27901 Use configure_file in CMake to force rebuild if git commit changes
* We also only use GIT_COMMIT_HASH where necessary to avoid rebuilding many
  files for no reason, including splitting version.cpp out into a separate
  project as we do with VS since otherwise changing its preprocessor defines
  rebuilds the whole renderdoc project.
* At the same time, move the git hash to be internal only so we don't have to
  try to link version.cpp into other projects like renderdoccmd or qrenderdoc.
2019-06-20 19:14:14 +01:00
baldurk ad038ff3e0 Add a log message when running as administrator 2019-05-06 12:25:31 +01:00
Aliya Pazylbekova 14019cf6c7 Modify "qrenderdoc --targetcontrol" command
Modify "qrenderdoc --targetcontrol" to accept hostname or ipv4
address.
2019-03-14 01:23:11 +00:00
Haiyu Zhen ca54a910f5 Add --replayhost command line option for qrenderdoc
This allows users to specify which remote host to connect to on startup.
2019-02-07 23:46:33 +00:00
baldurk 86ff87863e Update copyright years to 2019 2019-02-01 18:32:13 +00:00
baldurk 12e43443ab Shut down adb when closing qrenderdoc if it's our adb
* This has some possible problems - e.g. if one copy of qrenderdoc is closed and
  kills the server used by another copy. However it seems impossible to reliably
  manage adb and we need to ensure we don't leave the process lingering around.
* At the moment 95% of users don't use android, so it's most important that they
  have a smooth experience.
* This was the cause of problems around updating versions because adb.exe would
  hang around and then be 'in use' and not able to be overwritten.
2018-07-26 17:24:27 +01:00
baldurk 94694e0923 Fix processing of --updatedone
* Mark update as not available before starting up and creating main window.
2018-07-24 17:49:32 +01:00
baldurk 70f879ad7a Export AmdPowerXpressRequestHighPerformance to encourage use of dGPU 2018-05-03 15:35:01 +01:00
baldurk 2b64d6dfa7 Add options to change analytics settings after initial prompt
* We are also more explicit in code about disabling the analytics when
  the opt-out is selected.
2018-02-06 00:21:09 +00:00
baldurk 65ef82466c Re-organise Analytics structures a bit to be more processing friendly 2018-01-19 13:57:02 +00:00
baldurk fbb13f0f53 Don't create GUI application to run unit tests 2018-01-17 23:21:03 +00:00
baldurk 56c6fa2d04 Use QCommandLineParser to parse arguments more intelligently. Refs #843 2018-01-17 21:07:03 +00:00
baldurk e305029ddd Update copyright years to 2018 2018-01-01 17:55:29 +00:00
baldurk 417a811fad Expand docstring checks to also check names of symbols in the interface 2017-12-22 14:41:43 +00:00
David McFarland 7ae6cc3c37 qrenderdoc: fix --targetcontrol 2017-12-20 19:00:29 +01:00
baldurk 0b3d56f9f9 Ensure python global shutdown after context has closed 2017-12-19 17:32:12 +00:00
baldurk 764b39a23c Add update checking system to Qt UI
* This only runs on windows - on other platforms we rely on system
  distribution or user local builds.
2017-12-19 17:31:32 +00:00
baldurk f2e7f8f1a0 Refactor crash/bug reporter system
* The UI dialog is now in Qt. We run qrenderdoc.exe with a very minimal
  startup to display the dialog and send the report.
* The flow has been simplified to have less text and an easier time to
  just click through and send.
* On the first report, the user is gently nudged to enter their email
  address for contact and by default the email is saved for next time.
  They're not nagged more than once about this.
* Optionally the user can select to upload the capture. This is always
  default off, and there is a confirmation dialog making sure the user
  intended to select it.
* After the bug is reported, a unique URL is generated and returned
  which the user can then click back on to see if there's any update. By
  default the UI will also remember the URL and check it every couple
  of days and alert the user in the help menu that there's an update.
2017-12-19 12:26:34 +00:00