Commit Graph

841 Commits

Author SHA1 Message Date
baldurk cef00a102b Add struct VarType and combine flags into single field
* This is not a space saving right now, but allows more flags to be added
  without adding more storage.
2022-05-20 13:37:25 +01:00
baldurk 8aa0390948 Add string messages to returned result codes to display to user
* Most of the main entry points that can fail with relevant reasons now has a
  way of specifying a message to return with it. This message can be displayed
  to the user to give more information or context about an error.
2022-04-26 16:21:54 +01:00
baldurk 7b4f535663 Refactor watch variables to support complex types including structs 2022-03-07 18:45:57 +00:00
baldurk fcdea67879 Update copyright years to 2022 2022-02-17 17:38:32 +00:00
Remi Palandri d1858f4479 add support for VK_QCOM_FDM_offset 2022-02-14 21:02:27 +00:00
baldurk 76e273cbd4 Fix another clang warning 2022-02-03 11:13:16 +00:00
baldurk e42b0ff2ca Refactor ShaderVariable use and non-32-bit precision. Closes #2466 2022-02-02 15:00:43 +00:00
baldurk f40e1fe951 Fix docstring references to ShaderSourcePrefix 2022-02-01 00:09:35 +00:00
baldurk 3ac4bd0ebd Refactor custom shaders to abstract binding differences. Closes #2458
* Newly written shaders and any updated shaders can now use pre-defined macros
  to abstract away binding differences between APIs, so custom shaders will be
  more portable in particular shaders written in HLSL for D3D or GLSL on OpenGL
  won't break on vulkan because they refer to incorrect binds.
2022-01-31 19:14:08 +00:00
baldurk 0620a8f114 Allow customising the fixed/monospace font as well. Refs #2443 2022-01-12 11:24:22 +00:00
baldurk 089126c34b Add a new in-app API function ShowReplayUI to raise the UI window
* This is not guaranteed to work, e.g. on windows where for good reason
  background windows can't necessarily raise themselves.
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 33751470f2 Fix random new CI failure by setting CMAKE_CXX_STANDARD_REQUIRED 2021-11-25 12:16:45 +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 d4a5592780 Add functionality to reset an edited shader to original. Closes #2334
* We also add the ability to toggle on/off the replacement being active without
  needing to intentionally add a compile error (and this also makes it more
  explicitly clear when the shader replacement is enabled or not. This could be
  useful for quick A/B testing between the edited version and the original.
2021-11-02 14:09:50 +00:00
baldurk 72af2abd7d Handle runtime/unbounded arrays in buffer viewer formatting 2021-11-01 13:53:28 +00:00
baldurk ee8c685880 Tweak docstring on performance counter viewer 2021-10-18 23:03:39 +01:00
baldurk 3324b7f86c Hide hidden/internal parameters in resource inspector 2021-10-18 17:53:08 +01:00
baldurk 6dd63c6aec Convert counter viewer to item model, sync filter with event browser 2021-10-18 14:14:36 +01:00
baldurk 73f78bd8a4 Ensure formatting tags aren't exported/put on the clipboard. Refs #2382
* When we're formatting text we want just the plain text version to be used.
2021-10-06 16:31:43 +01:00
baldurk ff40a98ac7 Specify stage for spirv-cross in case it's needed to disambiguate 2021-10-04 17:01:34 +01: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 d386df55b9 Clarify requirement of a capture for device lost errors 2021-09-27 13:01:09 +01:00
baldurk 8ddc6eaa10 Fix docstring reference 2021-08-18 23:18:14 +01:00
baldurk 620e75c2a1 Add a system for backends to handle device lost/OOM errors and report it
* The UI will become non-functional and the backend will be replaced with a do-
  nothing one that keeps things alive without needing error bulletproofing
  everywhere in the real backend.
2021-08-18 20:12:07 +01:00
baldurk 100ccc9c65 Specify entry point when disassembling with spirv-cross. Closes #2342 2021-08-11 21:53:15 +01:00
baldurk 63e5448275 Fix naming of resource usage on GL/Vulkan 2021-07-28 11:37:14 +01:00
baldurk 124d0e71b6 Implement more flexible step/run options. Closes #2276 Closes #2312
* We split stepping for source debugging into step over/into/out depending on
  how it handles function calls. Step Into is the same behaviour as before - it
  steps to the next source line executed regardless of if it's inside a function
  call. Step Over is similar but will not enter function calls. We define that
  as the callstack growing (so staying the same or shrinking - returning from a
  function - is OK), and this is as accurate as the underlying debug
  information. Step Out will run until the callstack shrinks, i.e. returning
  from a function.
* This is a slight behaviour change of keyboard shortcuts - F10 was effectively
  doing step into and will now step over. F11 will step into which is the old
  behaviour.
* All these variants have backwards versions, and to remain consistent we keep
  the shift modifier as forwards/backwards. This differs from visal studio where
  step out is shift-F10.
* The seems like the best balance - using any other variant would likely confuse
  muscle memory of anyone used to visual studio (where these shortcuts are
  intended to mimick), if only because F10 would be step into whether or not F11
  is used for step over or some other key which would likely be even more
  confusing either way. Trying to twist to use Shift-F10 for step out would be
  inconsistent with the other backwards running operations and likely cause more
  confusion than it saves in matching VS's shortcuts exactly. Also an accidental
  Shift-F10 is not too destructive, the user can realise it didn't Step Out
  forwards, and press Ctrl-F10 or look up the button.
* The hope is that most likely people doing source debugging and familiar with
  these keys expect F10 to step over, so the previous behaviour was unexpected
  but easy to work around, and that changing the meaning of the key won't
  disrupt them. Or at least the disruption is less than other alternatives.
2021-07-21 13:39:26 +01:00
baldurk a8da2fed64 Respect palette foreground colour properly in rich text
* This is particularly relevant for custom-background colour items on dark theme
  where we may switch to dark text for contrast.
2021-07-15 16:41:23 +01:00
baldurk f5f1737c83 Fix a bug with URL handling that would add richtext twice 2021-07-15 16:41:23 +01:00
baldurk e4325a1cc1 Add debugPrintfEXT to glsl syntax highlighting 2021-07-14 15:33:12 +01:00
baldurk 3d3e7506aa Fix parameter generation for RGP event names 2021-07-10 21:30:34 +01:00
baldurk 7c7e9df847 Try to produce old action names for RGP
* This may not work forever but remains compatible for now.
2021-07-09 19:02:49 +01:00
baldurk d0accc409b Rename 'name' member of ActionDescription to 'customName'
* This is a deliberate break of compatibility since the field is now often
  empty, for non-markers. This means code will get a more explicit error when
  the name is being referenced, so it can be updated to fetch the name it needs
  as needed.
2021-07-01 15:15:05 +01:00
baldurk 7149302680 Rename 'draw' or 'drawcall' to action
* There's not a good accepted terminology for this kind of event, and for
  historical reasons 'drawcall' has been the accepted term, even though
  that can be quite confusing when a dispatch or a copy is a 'drawcall'.
* This is particularly highlighted by the event browser filters where
  $draw() includes draws and dispatches, but $dispatch() only includes
  dispatches, it's hard to intuitively understand why $draw() matches all
  of these calls.
* As a result we've defined the term 'action' to cover these types of
  events in the same way that we defined 'event' in the first place to
  mean a single atomic API call.
2021-07-01 15:15:05 +01:00
baldurk 3d2101476e Add marker breadcrumbs to event browser. Closes #1031 2021-07-01 15:15:04 +01:00
baldurk ca3e3afa66 Add saving of filters
* The current filter is preserved across runs even if it's not explicitly saved.
  Saved filters are only updated with an explicit save - loading a filter then
  making a change just cahnges the current scratch filter, it doesn't update the
  saved filter until the user explicitly saves it.
2021-07-01 15:15:03 +01:00
baldurk c5457a141b Add settings popup that explains & documents filters 2021-07-01 15:15:03 +01:00
baldurk 6272683678 Remove event browser settings about hiding empty regions 2021-07-01 15:15:03 +01:00
baldurk cb7fdc9b94 Add auto-completion prompts for filter function parameters 2021-07-01 15:15:03 +01:00
baldurk 385a254966 When rendering richtext documents, override document color for selection 2021-07-01 15:15:02 +01:00
baldurk 28c8a18617 Allow rich text to contain and embed html tags 2021-07-01 15:15:02 +01:00
baldurk b2b6f4a7cf Use line-height to get consistent rendering of rich text vs normal text
* Without this lines without icons actually end up smaller, meaning text between
  different rich texts without a common table doesn't align together.
2021-07-01 15:15:01 +01:00
baldurk ec5f570fea Add 'important' flag on structured data 2021-07-01 15:15:01 +01:00
baldurk 5dd3c95ee3 Add flags (not currently exposed in UI) for some different behaviours 2021-07-01 15:15:01 +01:00
baldurk 562905611d Update fake markers to work with new event browser model
* Fake markers now need a real event ID. We don't want to have to remap all
  events in a capture between UI and replay driver, so instead we assign non-
  contiguous events above the normal range and expect the UI to handle it.
2021-07-01 15:15:01 +01:00
baldurk 2f7855d6cc Optimise converting rich resource text to text only
* We don't have to do the full text document cache to just append the strings.
2021-07-01 15:15:01 +01:00
baldurk dcaabf42e9 Allow python to register custom event filters 2021-07-01 15:15:01 +01:00
baldurk 21e52a10e5 Implement builtin filter expression parsing 2021-07-01 15:15:01 +01:00
baldurk 85954dabbf Add simple stubbed UI for entering filter expressions 2021-07-01 15:15:01 +01:00