161 Commits

Author SHA1 Message Date
baldurk 856c838def Update copyright years to 2026 and fix copyright ranges
* In a previous update in 2021 many copyright ranges were truncated
  accidentally, and some files have been copy-pasted with wrong years. These
  dates have been fixed based on git history and original copyright messages.
2026-01-05 14:17:28 +00:00
Jake Turner c2015de391 Resource Usage UI changes
Add a column that shows the parent marker for the event range (by default the end event ID)
Add an option to prevent combining resource usage across markers (group by marker)
The tooltip for a resource usage entry contains the full marker path
2025-12-03 11:20:23 +13:00
baldurk 157941e31f Split shader/program labels in pipeline state views up to wrap better
* If program or shader names are very long then combining them can cause
  problems with how wide the widgets get. Splitting each element into a label
  that can wrap around and be truncated individually produces better behaviour.
2025-09-16 16:30:53 +01:00
baldurk 01115b3126 Detect cases where vectors are misaligned only in arrays. Closes #3644
* Scalar layout is required for vectors to straddle 16-byte boundaries but this
  may not be detected if they are naturally aligned within an otherwise mis-
  aligned struct.
2025-07-15 11:28:15 +01:00
baldurk 2322e165de Update copyright years to 2025 2025-03-14 18:54:37 +00:00
baldurk 86e8909b1e Display colour swatch when showing cbuffer values as RGB. Closes #3533 2025-03-06 16:07:49 +00:00
baldurk 959d330488 Treat RGB display of float values as in linear space always. Refs #3533 2025-03-06 16:07:49 +00:00
baldurk 46f83c15a4 Ensure replay loop is cancelled before window is hidden
* See also f56a989e4f - we don't want to make the replay loop always on
  top though
2025-02-21 14:38:54 +00:00
baldurk 74a6e28f5a Improve ability to redeclare buffer formats from struct definitions 2025-01-07 16:11:32 +00:00
baldurk 2b40a17f8a Add packing rule for bitfield packing/straddling a la #pragma pack(1) 2024-06-27 13:54:41 +01:00
baldurk 1194531fc5 Add a descriptor viewer for showing all of a heap, root sig, or set 2024-04-10 18:58:53 +01:00
Louis de Carufel 4c4b2a32ae New bookmark context menu to rename and delete.
Missing forward declaration.
Fixed Linux compilation.
Added a context menu to Bookmark buttons for renaming and deleting.
2024-03-27 12:23:21 +00:00
baldurk 9f4f0e6aa1 Update copyright years to 2024 2024-02-12 11:04:52 +00:00
Jake Turner 6ce881d5da UI and Config support for dec/hex display option for Offsets or Sizes
Used when fields are marked as being an Offset or Size
Include simple latch to trigger a UI refresh when closing the settings dialog.
Currently only connected to if the Offset/Size format option is altered
2023-12-06 17:19:05 +00:00
Er2 dcbbcee6a8 Add some fixes. 2023-11-06 14:42:45 +00:00
baldurk 9d39b8e1a8 Reformat code for clang-format 15 2023-09-05 11:02:08 +01:00
baldurk dfed2749c9 Fix detection of scalar packing from only matrix layout. Closes #2918 2023-04-25 13:42:17 +01:00
baldurk d47e79ae07 Update copyright years to 2023 2023-02-01 12:23:32 +00:00
baldurk 94d1ce3917 Cache text for GPUAddress values properly 2022-08-04 16:56:32 +01:00
baldurk 5d51b524c6 Fix interpreting and declaring buffer formats that include pointers 2022-07-25 10:08:59 +01:00
baldurk d39197a499 Arrays of float3 with a stride of 12 is only possible in scalar packing
* Previously this would be treated as std430 due to being 'tight' array packed,
  even though std430 only allows as tight as the base alignment - which for a
  float3 is 16-bytes still.
2022-07-11 13:00:18 +01:00
baldurk c77261f0f3 Display struct/enum typenames when available in buffer viewer 2022-05-25 17:18:31 +01:00
baldurk 9bde5324b6 Improve handling of enums in buffer viewer fixed variables 2022-05-25 17:02:10 +01:00
baldurk 27aa5e05c3 Work recursively to estimate packing rules of a struct 2022-05-24 16:34:42 +01:00
baldurk cef5aa857b Avoid declaring redundant structs for anonymous GL structs 2022-05-20 14:15:31 +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 2d8687e28e Show parse errors on the line they occur 2022-05-20 14:15:31 +01:00
baldurk abe645f031 Add support for saving and loading structure definitions 2022-05-20 14:15:30 +01:00
baldurk 4bb54d00dd Show visible offsets and (optionally) padding in buffers. Closes #1664 2022-05-20 14:15:30 +01:00
baldurk 43fa3cd94b Use BufferViewer for viewing constant buffers
* Unifying these views means that constant buffers have all the same
  reformatting and it avoids having multiple paths for what is now effectively
  the same control (a buffer can either have fixed data, repeating data, or
  both)
2022-05-20 14:15:30 +01:00
baldurk fcdcc9714b Implement export options for fixed items in buffer view 2022-05-20 13:37:27 +01:00
baldurk a36516c8a5 Explicitly handle unbounded arrays and display declared fixed vars
* GL and Vulkan allow buffers to have fixed variables before a trailing AoS
  unbounded array. These fixed variables can't be easily displayed in a table
  and previously we skipped them. Now we display these in a tree format.
* We also support formats which don't have an unbounded array at all and display
  these just with the tree. This will allow the BufferViewer to subsume the
  capabilities of the ConstantBufferPreviewer (though it needs to handle opaque
  non-buffer-backed variables, and slot-following).
2022-05-20 13:37:26 +01:00
baldurk 97a3943cdd Use packing rules when generating format strings for structs
* This allows the calling code to pass a hint of what packing is known or likely
  to be used, meaning less generated manual offsetting/padding when the implicit
  rules cover it.
2022-05-20 13:37:26 +01:00
baldurk 4dc7b3f8b7 Process packing rules when parsing formatting strings
* Instead of having a global tight/non-tight we now let the format string
  specify the packing rules (defaulting to scalar - i.e. tight packing as
  before), and use the resulting properties to calculate packing.
2022-05-20 13:37:26 +01:00
baldurk 7abe72be6b Add a function to estimate packing rules based on members
* This is primarily for GL/VK where the packing rules are not pre-defined and
  are also not explicitly reflected, so we instead see what rules are broken
  along the way to get the most conservative ruleset we can (that way minimising
  the need for manual offset decorations)
2022-05-20 13:37:26 +01:00
baldurk 43fda618f3 Add a packing rules struct to contain important packing rules
* There are several different API packing rulesets - GL has std140 and std430
  (and packed/shared, which is implementation defined but is likely to be
  similar to one of these or more conservative), VK effectively has rules for
  those both, as well as scalar packing which is close to C packing. D3D has one
  ruleset for cbuffer packing similar to std140, and effectively scalar for
  structured resources.
* These rulesets are quite similar and only differ by the properties here. There
  is one exception in the handling of empty structs - but in GLSL these are
  illegal so we will take the HLSL interpretation and always treat them as 0
  bytes.
2022-05-20 13:37:26 +01:00
baldurk cee4b25b28 Allow specifying offsets and struct strides manually with offsets
* Use these when generating buffer formatter strings instead of declaring manual
  padding variables.
2022-05-20 13:37:26 +01:00
baldurk a42f9edc3a Add annotation for binary view 2022-05-20 13:37:26 +01:00
baldurk 2399c9d136 Add support for bitfield packing in the buffer viewer formatting 2022-05-20 13:37:25 +01:00
baldurk fcdea67879 Update copyright years to 2022 2022-02-17 17:38:32 +00:00
baldurk e42b0ff2ca Refactor ShaderVariable use and non-32-bit precision. Closes #2466 2022-02-02 15:00:43 +00:00
baldurk 0620a8f114 Allow customising the fixed/monospace font as well. Refs #2443 2022-01-12 11:24:22 +00:00
baldurk a0d40073ce Allow customising the font family. Closes #2443 2022-01-10 17:53:18 +00:00
baldurk 3fb4e230de Handle single-basic-element buffers in GL/Vulkan properly. Closes #2378
* We still need to handle multiple elements in the root of a struct specially by
  commenting out the fixed members, but the final element needs to go through
  the normal DeclareStruct() path to handle things like per-column padding in
  matrices etc.
2021-10-04 12:02:09 +01:00
baldurk ec5f570fea Add 'important' flag on structured data 2021-07-01 15:15:01 +01:00
baldurk 21e52a10e5 Implement builtin filter expression parsing 2021-07-01 15:15:01 +01:00
thisisjimmyfb 8059f129d5 add clickable links for Vulkan Validation Layer messages 2021-06-30 13:32:44 +01:00
baldurk 95e6a4a971 Respect font scale for fixed-width fonts 2021-04-12 13:04:02 +01:00
baldurk 9290ed926b Display VRS state in D3D12 pipeline state viewer 2021-02-10 14:20:46 +00:00
baldurk 15cbeef054 Fix offset calculation with declaring nested buffers in format string
* When calculating the size for a struct member we need to properly recurse
2021-02-08 14:05:04 +00:00