Commit Graph

12386 Commits

Author SHA1 Message Date
baldurk 1a87e6b084 Avoid selecting red as a highlight colour for filters 2021-07-01 15:15:05 +01:00
baldurk e9c176cd7d Strike-out and don't colourise ignored expressions 2021-07-01 15:15:05 +01:00
baldurk 41e4cc43ec Fix filter highlight colours for dark theme 2021-07-01 15:15:05 +01:00
baldurk 634a8c381a Update test scripts to latest APIs and behaviour changes 2021-07-01 15:15:05 +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 e7785bd99e Document the flags in $draw(flags & ...) and improve docs formatting 2021-07-01 15:15:04 +01:00
baldurk 9536c07164 Add option to batch import or export filters 2021-07-01 15:15:04 +01:00
baldurk fe81f57316 Remove recent filters button in favour of styling a fake combo box
* The filter icon was confusing since it had a 'refresh' badge instead of
  'save/load/recent' type badge, and making the latter readable in a few pixels
  is not feasible. Having the combo dropdown with saved filters is as intuitive
  and works in-line.
2021-07-01 15:15:04 +01:00
baldurk 7a02ec749b Rename 'Settings' to 'Settings & Help' in filter toolbar 2021-07-01 15:15:04 +01:00
baldurk ae978fdb4f Add some example filters if none are saved 2021-07-01 15:15:04 +01:00
baldurk ec618896a8 Don't allow filter strip to be hidden
* This help prevents possible confusion if someone hides the filter with some
  exclusions active and gets confused why things aren't showing up.
2021-07-01 15:15:04 +01:00
baldurk a92ffa0173 Squeeze a little horizontal space by making root breadcrumb just an icon 2021-07-01 15:15:04 +01:00
baldurk e669eaebfc Ditch $any() and $all() in favour of simple paren nesting
* This means that literals are no longer allowed to contains ()s to match e.g.
  Draw( to implicitly exclude DrawIndexed().
2021-07-01 15:15:04 +01:00
baldurk 5abfb7d5a2 Add a filter $parent() or $childOf() to match events under a marker 2021-07-01 15:15:04 +01:00
baldurk 065d7202b0 Fix a crash with $param() filtering on fake markers 2021-07-01 15:15:04 +01:00
baldurk 0c63ff08ae Fix interaction of mixed must/normal filters 2021-07-01 15:15:04 +01:00
baldurk dc16db6c2d Disable the $event() filter for now
* It's of very little value and causes more confusion than it's worth.
2021-07-01 15:15:04 +01:00
baldurk 3d2101476e Add marker breadcrumbs to event browser. Closes #1031 2021-07-01 15:15:04 +01:00
baldurk 5a1f6fdba8 Elide tool button text if the button isn't large enough 2021-07-01 15:15:04 +01:00
baldurk 5e3c6bb745 persist whether the filter is open as part of the saved layout 2021-07-01 15:15:04 +01:00
baldurk e5631c5b8d Add a general help section to the filter config dialog 2021-07-01 15:15:03 +01:00
baldurk 587e7cbcaf Add documentation for literal string matches 2021-07-01 15:15:03 +01:00
baldurk 7f38ecd452 Clear filter explanation before adding new items 2021-07-01 15:15:03 +01:00
baldurk 9d4b1d3f91 Support queries with no whitespace like $draw(EID>100) 2021-07-01 15:15:03 +01:00
baldurk 34cf40f13e Allow $param(name = value) for consistency with other query conditions 2021-07-01 15:15:03 +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 715ae0ea03 Don't match popmarker draws with $draw() by default
* This is a little bit inconsistent because they are technically draws, but
  they're only draws so they can include the trailing API events in a region.
* Think of it this way:
  Imagine we instead made PopMarker just a normal API event (which is how we want to treat it) and instead inserted a second 'internal' draw at the end of each region to contain the popmarker. This internal draw would be hardcoded to never show up in filters no matter what - even with an empty include-all filter. But it contains the other API events so they can be selected individually and filtered in/out.
  In this scenario it's functionally equivalent to just using the PopMarker as that 'internal' draw containing its own API event and making it fail all draw filters. The only difference is that users can manually filter in the PopMarker draw with flags if they want.
2021-07-01 15:15:03 +01:00
baldurk f82a26ea25 Add a regex filter function 2021-07-01 15:15:03 +01:00
baldurk cb669175c8 Remove close buttons for find/filter now that the toolbars are togglable 2021-07-01 15:15:03 +01:00
baldurk 571fa835b2 Store text ranges of filters and colour-highlight subexpressions
* This won't be on by default in the final in-line version but will be used for
  'explaining' a filter.
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 3bc221d625 Add a $dispatch() helper to filter only dispatches (and properties) 2021-07-01 15:15:03 +01:00
baldurk 7b83524bc8 Add duration property to $draw() filter 2021-07-01 15:15:03 +01:00
baldurk 1bb3f95b04 Register builtin filters similarly to custom filters
* We can't use the exact same interface because we want builtin filters to be
  able to return specialised lambdas, but we at least register them by name.
  This is helpful for ensuring the completion doesn't get out of sync, and we'll
  use it next to provide function-specific completion
2021-07-01 15:15:03 +01:00
baldurk 195ab94e51 Implement filter function auto-completion prompts 2021-07-01 15:15:02 +01:00
baldurk e3f55c511d Add highlighting and display of filter parse errors 2021-07-01 15:15:02 +01:00
baldurk f24b6c99e3 Format API call strings using important tags 2021-07-01 15:15:02 +01:00
baldurk 3036b854ad Add important tagging to parameters in GL 2021-07-01 15:15:02 +01:00
baldurk 70a51ae498 Add important tagging to parameters in Vulkan 2021-07-01 15:15:02 +01:00
baldurk 7aed22cd0d Add important tagging to parameters in D3D12 2021-07-01 15:15:02 +01:00
baldurk 2af1ac20c9 Add important tagging to parameters in D3D11 2021-07-01 15:15:02 +01:00
baldurk 58b38337f1 Optimise tree view expand/collapse all to avoid slow Qt path 2021-07-01 15:15:02 +01:00
baldurk 5252a3b9b7 Refresh event browser model when resource renames change 2021-07-01 15:15:02 +01:00
baldurk 038b1d451a Unselect current item if we get set to an event which is filtered out
* This can happen with bookmarks or anything else in the UI that sets the
  current event.
2021-07-01 15:15:02 +01:00
baldurk a253f01bb2 Add some bullet-proofing against invalid model indices 2021-07-01 15:15:02 +01:00
baldurk 7c2e7bff47 Fix previous/next drawcall buttons when some drawcalls are filtered out 2021-07-01 15:15:02 +01:00
baldurk 3c0e0803f9 Display the range for markers in the EID/draw columns 2021-07-01 15:15:02 +01:00