Commit Graph

113 Commits

Author SHA1 Message Date
baldurk d0394d9233 Only do queued row select on the stage that was selected
* This prevents out-of-range errors when picking in a GS out view an
  expanded mesh, and getting a row that's higher than exists in the VS
  in view
2017-03-21 12:38:21 +00:00
baldurk c12279f641 Fixes for multi-instance picking
* Always at least pick the current instance, even if no others are
  visible
* Only apply to VS output picking. Inputs either don't vary with inst ID
  or are trivial (all verts identical) depending on the element selected
* Respect the currently selected element instead of always picking
  the position output
* If we're selecting a different instance, we have to queue the vertex
  selection because otherwise the refreshing of rows breaks it
2017-02-20 22:16:57 +00:00
Steve Legg 87adee1bf1 Implement multi-instance mesh picking 2017-01-20 16:12:48 +00:00
baldurk 030cbfde9a Batch update copyright years everywhere 2017-01-06 12:13:31 +00:00
baldurk 07fd9c8e0c Speculative fix for crash with buffer viewer being closed early.
* I received a few crash reports with a disposed buffer viewer still
  doing work. My theory is that some operation took long enough that the
  user was able to close the viewer (perhaps *because* it was taking a
  long time) and subsequent work then didn't handle the window having
  been closed.
2017-01-04 16:47:58 +00:00
baldurk e12ebb67a3 Make IDX mesh view column a little wider to account for large indices 2016-09-23 13:28:34 +02:00
baldurk fb418f883e Add a button to pipeline state view to save shader raw contents to file
* The exact contents depend on the API - on D3D11 this is the bytecode
  blob, on Vulkan it's the SPIR-V. On OpenGL it is just a concatenation
  of all the source files passed in sequence.
2016-08-30 16:43:52 +02:00
baldurk ebea48260d Mark blocking invokes for painting as lower priority
* This allows them to be enqueued without the usual synchronous block
  if there's something long-running on the queue while in remote mode.
2016-08-19 17:26:24 +02:00
baldurk 9d24013f3b Clamp the view-size specified number of rows to the max num rows. 2016-08-09 00:41:10 +02:00
baldurk 9f9610ce6d Recreate output windows after use, since D3D12 breaks them 2016-08-06 18:31:33 +02:00
baldurk 610b22f600 Fix a lot of high-contrast inconsistencies or brokenness. Refs #315
* In a couple of places I had to resort to if(IsHighContrast) but mostly
  this is just using system brushes consistently or not assuming black
  text.
* The default DockPanel theme doesn't work well, so make a minimal high-
  contrast theme for it and assign it everywhere.
* The pipeline flow was using fixed colours, use system brushes for the
  different elements and switch based on high-contrast to ensure active
  and inactive stages are visible (using ActiveCaption looks bad on
  normal themes because it's a big block of colour).
* For some reason the flat toolstrip renderer doesn't handle white-on-
  black themes, but the system one does. It's a little clunkier but it
  shows up correctly without writing tons of custom painting code.
* Range histogram uses a properly contrasting colour for the border.
* Treelist views use a better system colour for selected rows when
  inactive and hovered rows (when high contrast).
* Mesh view grids have a system background instead of white
* Various things (pipeline state, mesh viewe) set text colour when
  colourising backgrounds of things instead of assuming black.
2016-08-05 12:46:56 +02:00
baldurk e8cb71a895 Add protection for buffer/texture viewer layouts failing to load. 2016-08-01 22:28:57 +02:00
baldurk 53f53dd1c2 Don't add mesh viewer to log viewer list twice 2016-07-30 12:42:19 +02:00
Dr. Chat 85f4e724d7 Properly unpack double -> float in min/max calculations. 2016-07-25 17:52:56 -05:00
baldurk b91518a2aa Prevent a crash when reloading layout, if bufferviewer is destroyed 2016-07-25 18:27:20 +02:00
baldurk 132bef38af Calculate bytesize properly for packed formats in mesh viewer 2016-07-25 18:27:13 +02:00
baldurk 77fe1314e2 Properly interpret format elements when calculating mesh bounding box
* This fixes mesh display of e.g. SNORM components
2016-07-25 18:27:12 +02:00
baldurk 0ebf99f0b4 Avoid exception seeking to invalid row in mesh viewer
* This happened when jumping to a primitive from pixel history if the
  views were synced.
2016-07-25 13:01:37 +02:00
baldurk 28c1768397 Add menu item to jump from pixel history modifications to each primitive 2016-07-22 14:40:40 +02:00
baldurk 5958e7cc24 Calculate max formatted float size given current settings as col width
* The default (and previous) width of 100 is a little larger than the
  calculation ends up being for default float formatting values.
2016-07-21 14:01:15 +02:00
baldurk 4268d8f58f Remove structure size and redundant 32-bit length field from FetchBuffer 2016-07-10 18:10:02 +02:00
baldurk 04d1668bd7 Add layout persistence to buffer viewer 2016-06-22 12:39:34 +01:00
baldurk 947f7decb2 Add 'show all instances' mode, and make colours consistent. Closes #248 2016-06-03 17:34:26 +02:00
baldurk 9c15dfc6c9 [Coverity] Don't dereference draw if it may be null 2016-05-13 23:46:44 +02:00
baldurk 274dbcd4ef Remove unnecessary double-calls of OnLogfileLoaded(). Refs #267 2016-05-04 21:52:31 +02:00
baldurk 14781e4287 Handle invalid vulkan vertex input setup, and display better in pipeview 2016-04-17 17:50:45 +02:00
baldurk 70b99a4412 Remove antiquated 'multiple frames in one capture' support.
* Cleans up the code a bunch, this support is unlikely to ever return
  and if it does it will need a rethink anyway.
2016-04-13 00:28:09 +02:00
baldurk 009bfb2c74 Where possible apply offs/len knowledge when viewing buffers. Refs #224 2016-04-02 15:39:27 +02:00
baldurk 5869e9c1bf Handle baseVertex as signed, separately from vertexOffset. Refs #228 2016-03-24 18:50:04 +01:00
baldurk 729404b225 Fix potential deadlock accessing ByteOffset on render thread 2016-02-24 00:42:59 +01:00
baldurk 839ee08768 Don't create unnecessary output for non-mesh buffer viewers 2016-02-23 22:24:45 +01:00
baldurk df714b3f47 Make buffer viewer more robust to being closed while fetching data 2016-02-08 21:11:46 +01:00
baldurk 6655d525d1 Don't enforce max row count for mesh viewer 2016-02-07 18:51:45 +01:00
baldurk 2e0ffa7813 Batch update copyright years everywhere 2016-02-07 18:50:45 +01:00
baldurk 794065eedb Crash fix 2016-02-07 18:49:43 +01:00
baldurk 7aca368cc7 Fix resourceformat check (was 'working' before because null != null) 2016-02-07 18:49:39 +01:00
baldurk a3bf43c852 Tweak cell header merging in buffer viewer to merge all columns
* There's some kind of flickering/lag that goes on when you horizontally
  scroll but it's minor and I can't figure out how to fix it for now.
2016-02-07 18:49:32 +01:00
baldurk c06aeebd3a Crash fix for non-indexed meshes 2016-02-07 18:48:00 +01:00
baldurk 48a03ae21f Only fetch the PostVS data needed for this draw, not the whole buffer
* For instanced draws where there are many instance and each instance is
  a lot, this saves fetching a *ton* of redundant data.
2016-02-07 18:47:45 +01:00
baldurk 793d2690c4 Be more aggressive with null'ing/disposing old data, to garbage collect 2016-02-07 18:47:44 +01:00
baldurk 0b61607cc7 When loading a log, default back to buffer view showing VSIn 2016-02-07 18:47:35 +01:00
baldurk bd5a6752e2 Use viewport for guessing aspect ratio, not dimensions of depth/colour 2016-02-07 18:47:33 +01:00
baldurk 101d780956 Handle post-vs data being padded/aligned instead of tightly packed 2016-02-07 18:47:33 +01:00
baldurk 8818de4524 Use vertex stride from PostVS data if we're reading it 2016-02-07 18:47:32 +01:00
baldurk 5c309d9d34 Refactor handling of resources/binding to be much more flexible
* This will handle the new vulkan binding model with multiple descriptor
  sets and arrays of objects in each binding. It also makes a few tidy
  ups and improvements to other APIs in presentation - will e.g. now
  show thumbnails for vertex and other stages.
2016-02-07 18:46:40 +01:00
baldurk ba8114936e Render mesh displays as 4x MSAA to make the line rendering a bit nicer 2016-02-07 18:46:23 +01:00
baldurk 879df25850 Implement mesh rendering (wireframe and solid) 2016-02-07 18:46:10 +01:00
baldurk 36d2ffd988 Handle super small buffers in buffer viewer without displaying nothing 2016-02-07 18:45:14 +01:00
baldurk 4fe74824b1 Switch buffer offsets and lengths to 64-bit, downcast only where needed 2016-02-07 18:45:06 +01:00
baldurk 8eddd387d7 Add vulkan pipeline state viewer based on D3D11 viewer 2016-02-07 18:41:35 +01:00