Commit Graph

1375 Commits

Author SHA1 Message Date
Mikko Rasa 19eb9bec34 Refactor drawing of lines in TimelineBar
They're now drawn as CE_StyledFrame controls, with either HLine or VLine
shape as appropriate for the orientation of the line.  This will go into
RDStyle when the light or dark UI theme is selected, allowing appropriate
colors to be used.
2021-02-08 11:43:37 +00:00
baldurk 40b86b63fb Update code for new SSL libraries in new Qt version 2021-01-27 17:06:09 +00:00
baldurk 4d16c3e44c Add function to close top level windows to MiniQtHelper 2021-01-27 16:05:03 +00:00
baldurk 3f637e0d9b Link to renderdoc-contrib repository 2021-01-27 12:58:51 +00:00
baldurk 29c5965599 Update some missing entries and comments from custom shader snippets 2021-01-27 12:49:36 +00:00
baldurk e6601672ec Delete net worker when net manager thread completes 2021-01-22 14:57:48 +00:00
baldurk ba06717842 Don't fetch resource lists for unbound shader stages
* This is a minor optimisation when there are large numbers of bound resources
  that are available (duplicated) to all shader stages. There's no point
  fetching them when there's no shader bound there.
2021-01-21 11:30:50 +00:00
baldurk c002c71fe8 Don't display buffers as thumbnails in texture viewer
* This is a holdover from simpler binding times, these days it makes more sense
  to omit buffers than try to hold onto those bindings even when they don't
  contain textures.
2021-01-21 10:43:37 +00:00
baldurk 40f83cfbfd Fix lag in updating texture viewer display when selecting new draws 2021-01-20 17:15:34 +00:00
Marcin Ślusarz 309a08373b Put units in table header instead of each row. 2021-01-20 17:15:16 +00:00
baldurk 3d9bba65c8 Fix resizing issue with vulkan scissors display 2021-01-19 17:39:12 +00:00
baldurk 1fe92989b7 Fix aspect ratio calculation for negative viewport height 2021-01-19 17:10:09 +00:00
baldurk 03db0c480e Fix override warning 2021-01-15 21:40:24 +00:00
baldurk 3d52d5acaf Change window title to reflect development/release builds 2021-01-15 16:50:48 +00:00
baldurk 924c513d70 Fix cases where empty-range ellision in D3D12 pipeline state breaks
* We can't assume ranges in root signature elements map to shader binding
  arrays, there is a many:many relationship (one range can have multiple
  elements, or only part of an array, one array can have multiple ranges).
2021-01-15 14:57:34 +00:00
baldurk 6d1e37de3a Display bind array index in register name on D3D12 pipeline state 2021-01-15 14:14:50 +00:00
baldurk 1ce0958398 Add helper for setting images in labels 2021-01-15 12:36:14 +00:00
baldurk 99725b1dc4 Use devicePixelRatioF to calculate texture viewer coords. Closes #2148 2021-01-14 12:03:07 +00:00
baldurk 026da176bb Update copyright years to 2021 2021-01-13 13:56:10 +00:00
baldurk e970ee0e33 Fix issue with clamped length with byte offset in buffer viewer 2021-01-06 16:58:43 +00:00
baldurk fd1b051d2c Add helper for selecting sample mask, which varies in location by API 2020-12-18 14:05:54 +00:00
baldurk eabc6990b0 Don't try to always read 4 components of data from output. Closes #2119 2020-12-17 22:23:34 +00:00
baldurk 7c35bdb174 Omit large ranges of empty resources in arrays in D3D12 pipeline state 2020-12-17 15:20:50 +00:00
baldurk f3b66b0112 Only refresh texture list if resource renames changed
* Otherwise the texture list doesn't change when selecting events.
2020-12-17 15:20:32 +00:00
baldurk 47571c6b92 CPU writes should be treated as writes in the timeline bar 2020-12-17 12:22:00 +00:00
baldurk 3aaccc4fda Use rdcfixedarray in parameters for functions instead of C arrays
* This maps better to tuples in python
2020-12-15 22:52:38 +00:00
baldurk f32008e95f Add access for changing the 3D preview stage in mesh viewer 2020-12-15 22:52:37 +00:00
baldurk 8107a7a795 Account for array stride when unrolling AoS in buffer viewer 2020-12-09 18:16:08 +00:00
baldurk 7ff7e0a71d Replace fixed C arrays with wrapper class in public interface
* These map more naturally to python tuples and are easier to wrap in and out.
* We also tidy up the FloatVecVal etc and standardise the members of
  ShaderValue.
2020-12-09 18:16:08 +00:00
baldurk 659fdaa235 Check that all complex struct members that have :type: in docstrings
* Ideally we'd document every member unconditionally for best autocompletion,
  but that's a lot of modification so for now we stick to just making sure that
  any members that are struct types (or lists/tuples) have the :type:
  declaration so that we can autocomplete inside them.
2020-12-09 15:18:27 +00:00
baldurk 6b8ce92d88 Clean up docstrings in python interfaces to be strictly typed/formatted
* Also added a script that can run as part of CI to verify that the docstring
  matches, by generating a regex from the docstring documented parameter types
  and return type and making sure we find a match within the C headers. This
  ensures all parameters are documented with the right types, no extra
  parameters are documented, and the return type is correct.
* The script also checks proper scoping so that if qrenderdoc docstrings
  mention a renderdoc type, they need to scope it properly.
2020-12-07 17:44:51 +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 0d1f6e3940 Add helper to invoke back onto the UI thread from the replay thread 2020-12-03 14:17:42 +00:00
baldurk a8a40ca3d6 Add the ability to create spacers, for better layouts 2020-12-03 13:24:56 +00:00
baldurk a176849962 Add some new helpers for managing widgets 2020-12-03 11:24:39 +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 9610919c16 Fix copy-paste of rich resource text
* We need to cache to the QString text on demand, which requires a context
  potentially sooner than paint/etc time.
2020-12-02 17:44:46 +00:00
baldurk a34d7b1965 Don't bind Qt signals multiple times for custom paint widgets 2020-11-24 16:29:36 +00:00
baldurk 58e16414e0 Add a number of control functions to the Qt python interface 2020-11-20 17:02:33 +00:00
baldurk 3f5a911483 Refactor CustomPaintWidget to handle widget recreation internally
* This allows us to expose to to python as a easy-to-use "replay output ready"
  widget.
2020-11-19 14:47:11 +00:00
baldurk 1dc1b4d167 Add some profile markers in common hotspots 2020-11-19 14:47:11 +00:00
baldurk 0aefcced95 Add a small interface into Qt widgets to our own python wrapping
* This by no means replaces PySide2, but it allows python extensions to write
  simple UIs without needing to rely on PySide2, which might not be available
  (generally all windows builds have it as well as recent binary linux builds,
  but local windows builds may not and most linux builds probably won't).
2020-11-18 18:21:20 +00:00
baldurk 6320923966 When VB stride is 0 read enough data for any single attribute 2020-11-12 17:04:43 +00:00
baldurk ab28d102cd Fix bug allowing users to close unclosable texture viewer panels 2020-11-09 12:25:20 +00:00
baldurk 695ffaaf24 When viewing a texture from pipeline state, default to view typecast 2020-10-30 16:28:03 +00:00
baldurk bb2a8a431f Ensure we reset any android capture settings on close
* If no capture is loaded after launching a program, the capture settings can
  still be present and cause problems with future launches of applications
  depending on the Android version.
2020-10-29 12:03:27 +00:00
baldurk 03b7229bad Support choosing multiview viewport in vertex debugging on vulkan 2020-10-28 13:34:08 +00:00
baldurk 1ceeb159b7 Add lazy-populating item model for SDObjects
* We also add intermediate paging nodes for large arrays to ease expansions
2020-10-27 15:15:20 +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