1524 Commits

Author SHA1 Message Date
baldurk d386df55b9 Clarify requirement of a capture for device lost errors 2021-09-27 13:01:09 +01:00
baldurk 7700c2a80d Don't trust presence/absence of raw buffer flag on D3D12 descriptors 2021-09-24 13:23:32 +01:00
baldurk c3a93bf61b Fix potential crash reading empty descriptor array on D3D12 2021-09-17 12:50:05 +01:00
baldurk 8e1c6bb876 Fix error message accessing invalid tokens in filter 2021-09-16 12:40:11 +01:00
baldurk 2752008d13 Ensure consistency when saving the current capture. Closes #2358
* If we save the current capture from a connection window we want to do that via
  the main window so the UI can be properly updated and so we can save it
  properly through the replay manager, so the old one can be removed safely.
2021-09-14 13:25:02 +01:00
baldurk 90f3417039 Don't generate potentially unsupported vertex formats to ignore W
* When using VS In we want to ignore the W component, but that already happens
  explicitly for vulkan/GL in the shader. Mirror that same solution to D3D
  instead of trying to force a 3-component format which may not be supported
  (e.g. on AMD R16G16B16_*)
2021-09-13 19:11:28 +01:00
baldurk 2cd0bf593f Update copyright year in about dialog 2021-09-09 12:24:03 +01:00
baldurk 93238bf160 Add checks in event browser for when no capture is loaded 2021-08-30 15:55:46 +01:00
baldurk 4e58264035 Don't include inf/nan times in summation
* These can be generated by buggy drivers particularly on GL, so try to mitigate
  the effect of that.
2021-08-30 13:15:59 +01:00
baldurk 1ef790ab80 Update capture connections when an open capture is saved. Closes #2352 2021-08-27 11:33:40 +01:00
baldurk a21d245114 Remove show unused/show empty options from texture viewer 2021-08-26 09:51:37 +01:00
baldurk c820ea7735 When no draw action is selected in the mesh viewer, be explicit about it 2021-08-24 19:01:05 +01:00
baldurk 137893f508 When giving nodes an effective EID, ignore trailing PopMarker EID
* This applies when selecting a marker region, the effective EID is the one
  actually replayed to an represented in the UI. As-if it were directly
  selected.
2021-08-24 19:00:44 +01:00
baldurk fe50a5674a Fix a crash getting the event name of EID 0 2021-08-24 19:00:05 +01:00
baldurk dd8265bf9e Add extra protection against invalid buffers in buffer viewer 2021-08-24 17:09:28 +01:00
baldurk f32e8525f2 Only allow reports from builds with valid commit hashes 2021-08-24 16:29:03 +01:00
baldurk f8cf943c42 Fix problem where a new profile wouldn't have default event filter
* In v1.15 if you upgraded from a previous version and had a renderdoc config
  file then the persistent storage storing the filters would get loaded with an
  empty variant map, so the defaults could be set. However if you had no config
  file at all this wouldn't happen so no defaults would be set.
* We detect the case where we load an old profile and it has blank current
  filter or saved filters, and fill in the defaults now. If the filter has been
  customised or some saved filters exist, respectively, we don't touch them.
2021-08-24 10:57:36 +01:00
baldurk 9486cac1ca Fix mac compile error 2021-08-19 00:19:05 +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 c319ac0234 Store API pipeline states in the replay controller
* Instead of storing the API pipeline states in the replay driver and returning
  pointers, we store them in the replay controller and write into it from the
  replay driver.
* This will allow us to remove the replay driver and still keep any previously
  obtained references/pointers to the pipeline state valid.
2021-08-18 20:12:06 +01:00
baldurk 0804ef63be Emulate bad vertex attribute casts on GL in mesh viewer
* On GL you can specify a vertex attribute that's stored as int but gets
  converted to float with glVertexAttribFormat instead of glVertexAttribIFormat.
  However if the shader accepts an int this is invalid and the value is
  undefined - we emulate this as the float bits being read as int directly, but
  that's not guaranteed behaviour.
* Normally we don't emulate this kind of mis-cast behaviour and just display the
  type of data passed to the shader, but in this case GL lets you specify three
  types (stored as int, cast to float, read as int) so our normal behaviour of
  just showing the input can be more misleading than normal.
2021-08-16 10:54:47 +01:00
baldurk c2e5d2a7fb Allow find text to be preserved when closed and reopened 2021-08-11 18:11:23 +01:00
baldurk b8fd1fce02 When finding in the event browser, respect the current filter
* This means we'll jump to the nearest _visible_ result, rather than just the
  next result whether or not it's visible. This also applies to EID searches,
  when doing a go-to on a particular EID we'll end up jumping to the next
  visible EID.
2021-08-10 13:53:25 +01:00
baldurk a3d5404393 Don't use the W from VS input (and VS out with geom/tess) positions
* This allows W to be filled with 1.0 which our mesh viewing shader expects to
  have to be able to multiply by the MVP matrix.
2021-08-02 10:22:40 +01:00
baldurk 7e080857aa Fix an infinite recursion crash when opening the event browser
* If a capture was opened it would recurse between initialising the event
  browser and the marker breadcrumbs.
2021-08-02 10:05:42 +01:00
baldurk 9655a029a9 Handle fake markers in timeline bar. Closes #2327 2021-07-29 12:51:47 +01:00
baldurk 97a83f4dc4 Fix a crash with action durations if there are fake markers added 2021-07-28 11:37:14 +01:00
baldurk 4bb3286d05 Reset action timings when eventbrowser model is reset 2021-07-28 11:37:14 +01:00
baldurk d0acc2a349 Fix display of typed buffers in D3D pipeline state viewer 2021-07-28 11:37:13 +01:00
baldurk 34a65857b1 Use custom sort on shader messages for location/workgroup
* The default sorting is purely text based so 1,0,0 is followed by 10,0,0 not
  2,0,0. We customise the sort so it does the right thing per-column.
2021-07-23 12:01:41 +01:00
baldurk 58afe63fe6 Fix export of shader messages from compute dispatches. Closes #2324 2021-07-23 11:48:07 +01:00
baldurk 4c4b0c58ec Fix 0-based line numbers in shader viewer find results
* Scintilla lines are numbered from 0 but for user display we want to be
  1-based.
2021-07-22 11:57:12 +01:00
baldurk bef75ce7fa Add export options and multi-select to shader msg viewer. Closes #2321 2021-07-22 11:41:20 +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 71bbc53759 Implement double clicking to go to find-all results. Closes #2277 2021-07-20 16:59:11 +01:00
baldurk 091cde69d4 Slightly tweak find-all highlight colour. Refs #2277 2021-07-20 15:52:55 +01:00
baldurk 8d5ef8109e When pre-populating find text, also try current word and select the text 2021-07-20 15:41:29 +01:00
baldurk e182a477b8 Close floating find windows when pressing escape 2021-07-20 15:41:03 +01:00
baldurk 46266a9dd6 Implement bindless feedback for DXBC shaders on D3D12 with patching 2021-07-15 16:41:23 +01:00
baldurk 96533c71f4 Use different dialog title for different export formats. Closes #2311 2021-07-08 10:35:54 +01:00
baldurk ba84a52c30 Fix compilation on mac 2021-07-01 20:29:51 +01:00
baldurk cad267eb41 Fix broken <code> tags in event browser filter documentation 2021-07-01 19:27:34 +01:00
baldurk dd9079e8d0 When using Ctrl-F to open find toolbar, ensure tool button is checked 2021-07-01 19:27:34 +01:00
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 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