Commit Graph

54 Commits

Author SHA1 Message Date
baldurk 5951ed723b Pass resource state data per-resource through for D3D12 2016-09-22 17:05:28 +02:00
baldurk 8b1a26287d Update D3D12 pipeline state to roughly match D3D12 state 2016-09-22 12:05:47 +02:00
baldurk 9e09386872 Handle VK_WHOLE_SIZE in buffer descriptor sizes 2016-09-15 17:46:36 +02:00
baldurk 0c009cd578 Fix a crash in vulkan pipeline state export to html 2016-09-12 14:28:46 +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 59bc8254bd Fix potential crash if drawcall is null when showing empty ibuffer 2016-08-05 12:54:13 +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 28c1768397 Add menu item to jump from pixel history modifications to each primitive 2016-07-22 14:40:40 +02:00
baldurk 4268d8f58f Remove structure size and redundant 32-bit length field from FetchBuffer 2016-07-10 18:10:02 +02:00
baldurk 3f4ec852ba Pass through image layouts for vulkan and display in tooltips. Refs #199
* Semi experimental for now - I'm not convinced that having a tooltip
  for every image element is the best UI. It will need some iteration.
2016-06-24 17:54:41 +02:00
baldurk 307cee89fe Adjust columns in vulkan shader resource UI to make a bit more space 2016-06-24 16:55:24 +02:00
baldurk 377e07374b Add (semi-experimental) highlight & info for non-trivial resource views
* For D3D11 and Vulkan, any views which don't just map to the whole
  buffer or image will be highlighted in a colour, and when mousing over
  that row a small tooltip will be displayed with the view parameters
  that differ.
2016-06-24 16:32:32 +02:00
baldurk 005a9ee226 Display swizzles on image views in vulkan pipeline view 2016-06-24 13:09:06 +02:00
baldurk f35a4c6b6b Use view format instead of resource format for Vulkan
* Since the Vulkan views are tighter and more strictly specified, we can
  always safely use the view format (in the non-mutable case it must
  exactly match the underlying resource's format).
2016-06-24 12:34:11 +02:00
baldurk a8457b56f6 Display required bytes of constant buffer if it differs from buffer size 2016-06-23 16:20:37 +02:00
baldurk 7884b0e825 Add HTML pipeline export for GL, and minor tweaks on Vulkan/D3D11 2016-06-09 17:37:16 -07:00
baldurk ed018f23e8 Add shader edit & replace for vulkan (without source for now)
* Currently at least glslang doesn't emit OpSource with source data
  embedded, so we don't pull it out and for the moment we just pre-fill
  the shader editor with the disassembly text (which is sort of but not
  really GLSL) as a better-than-nothing default.
2016-06-09 15:30:31 -07:00
baldurk d41c9538de Add support for SPIR-V specialization constants 2016-06-07 11:35:44 -07:00
baldurk 56c8fbc595 Handle purely typed texel buffers with no members 2016-06-01 16:48:22 +02:00
baldurk 6c39971374 Add proper support for immutable samplers. Refs #260 2016-06-01 16:39:18 +02:00
baldurk 1914a8a029 For APIs with proper separate sampler objects use debug names. Refs #273 2016-05-26 23:51:09 +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 e24f93970d Add empty marked rows for descriptor sets required by shader but unbound 2016-04-11 20:57:24 +02:00
baldurk 009bfb2c74 Where possible apply offs/len knowledge when viewing buffers. Refs #224 2016-04-02 15:39:27 +02:00
baldurk 74c1d16b2b Index FB attachments properly with renderpass indices. Refs #200 2016-03-01 19:44:10 +01:00
baldurk 420f1e7000 Fix display of push constants in the UI 2016-02-07 18:52:05 +01:00
baldurk 2e0ffa7813 Batch update copyright years everywhere 2016-02-07 18:50:45 +01:00
baldurk e22d62dabd Add formatting of complex buffers when opening viewer 2016-02-07 18:50:12 +01:00
baldurk d98a9ef4ae SPIR-V should fill out read only and read write resources separately 2016-02-07 18:50:10 +01:00
baldurk 85858da14d Use the right slot number for opening constant buffers 2016-02-07 18:50:09 +01:00
baldurk 599a378d9c Display descriptors by iterating the sets and looking up reflection
* This lets disabled/empty sets be displayed more correctly
2016-02-07 18:49:31 +01:00
baldurk f63dfcfc1f depthclip != depthclamp 2016-02-07 18:48:38 +01:00
baldurk 795fbcaf8d Fix some misc bugs 2016-02-07 18:48:35 +01:00
baldurk 521ec84b8b Add pipeline export to HTML for vulkan 2016-02-07 18:48:08 +01:00
baldurk b4ebc13c9d Support push constants display in UI 2016-02-07 18:46:59 +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 6051f0c500 Split 'Resources' shader array into readonly/readwrite arrays
* This is preparation for a following commit, might not work on its own
  (mostly untested - just compiling).
2016-02-07 18:46:39 +01:00
baldurk 534f9943f9 Handle arrays of shader resources in pipeline state 2016-02-07 18:46:36 +01:00
baldurk 8a6d2ebf30 Handle arrays of uniform buffers in descriptor slots 2016-02-07 18:46:35 +01:00
baldurk 7dd5760420 Try to handle unbound resources a bit better 2016-02-07 18:46:31 +01:00
baldurk e6807ec3a7 Proper display for descriptor sets in pipeline state view 2016-02-07 18:46:29 +01:00
baldurk af8addf20e Display if blend is enabled properly 2016-02-07 18:45:18 +01:00
baldurk b363dc1fb5 Vulkan scissor regions are x,y,width,height 2016-02-07 18:45:16 +01:00
baldurk 484d70ddbd Display buffers properly in resource list 2016-02-07 18:45:13 +01:00
baldurk b569932a71 Update pipeline stage names to Vulkan nomenclature 2016-02-07 18:45:05 +01:00
baldurk 70b1d241b0 Finish the vulkan pipeline display 2016-02-07 18:43:49 +01:00
baldurk b28428cdf1 Don't try and index into a descriptor set or binding that doesn't exist
* This can happen with unused binds - I think it's valid for a bind in a
  shader to index outside of the descriptor set as long as it's never
  used.
2016-02-07 18:43:15 +01:00
baldurk ee1460dcaa Update C# vulkan pipeline state structs to match 2016-02-07 18:43:00 +01:00
baldurk f660bdd807 For now, blat resources out into a list by string
* This will do until I figure out how to layout the pipeline viewer
  for resources.
2016-02-07 18:42:08 +01:00