Commit Graph

186 Commits

Author SHA1 Message Date
baldurk 9d54cf6b79 Special case - manually backport "Don't select unused bindings..." to C# 2017-09-13 14:52:18 +01:00
baldurk 13bf08a99e Remove disassembly from shader reflection, request it on demand 2017-07-05 16:31:44 +01:00
baldurk bdf2a68c71 Add shader's ID and entry point to the shader reflection struct
* This allows better identification of a shader from its reflection
  bundle. The entry point was already 'optionally' in the debug info
  struct which is no longer a great location for it.
* For APIs where the entry point isn't contractual and it might not be
  listed, instead we just fall back to 'main'. This means that the UI
  or anyone fetching the info can be guaranteed that some sensible entry
  point will be listed.
* Also for the debug info, remove the 'entryFile' index and instead just
  guarantee that as much as possible the entry point will be in the
  first file in the list.
2017-07-05 16:29:26 +01:00
baldurk abcfcfd8a4 Display resolve attachments with other framebuffer outputs in UI 2017-06-16 15:59:39 +01:00
baldurk 3d20a6be1f Fix GL pipeline state viewer brokenness. Refs #617 2017-05-17 19:50:49 +01:00
baldurk 886d6f608b Fix case that samplers are now "IsSRV" (renamed to IsReadOnly elsewhere) 2017-05-10 17:20:33 +01:00
baldurk 0f8e25a103 Fix a case where descriptor bind length wasn't being checked for ~0U 2017-04-27 19:47:48 +01:00
baldurk d406a0bf76 Fix highlighting of vertex attributes/vertex buffers on GL pipeline view 2017-04-26 20:47:04 +01:00
baldurk fd6fce7a78 Refactor pipeline states to expose opaque string properties as enums.
* Things like addressing modes, stencil operations, and other things the
  UI didn't need to know about previously were only exposed as string
  values to be passed through and displayed.
* Now we describe these with enums so the API can be properly
  introspected and used by consumers that might want to know the actual
  values of these states.
2017-04-18 14:57:40 +01:00
baldurk 2978755d54 On D3D11, any non-CS stage can access OM UAVs. Refs #564 2017-04-06 11:46:44 +01:00
baldurk d2d86b5726 Add 'floateleven' buffer format for R11G11B10 packed data, fix unpacking 2017-03-20 13:02:20 +00:00
baldurk adc325ea4d Do a case-insensitive compare while looking up header file includes 2017-02-02 12:51:55 +00:00
baldurk 82068eeab8 Set up D3D12 pipeline state view in Qt 2017-01-25 20:13:39 +00:00
baldurk d0aec2197d Implement GL pipeline state viewer for Qt 2017-01-24 19:02:29 +00:00
baldurk 31c29c3149 Give Vulkan shader stage structs in pipeline state consistent names 2017-01-24 12:12:33 +00:00
baldurk a9fb044874 Pass through texture swizzles on FBO attachments and display 2017-01-17 11:02:41 +00:00
baldurk 030cbfde9a Batch update copyright years everywhere 2017-01-06 12:13:31 +00:00
baldurk 90e068a111 Add support for VK_AMD_negative_viewport_height 2017-01-06 11:30:58 +01:00
baldurk 6aee676386 Open transform feedback buffers on double click from GL pipe viewer 2017-01-02 20:16:27 +00:00
baldurk 553a1008c8 Rename pipeline export, it's definitely not D3D11... 2016-11-30 16:07:03 +01:00
baldurk 9ddce6fe67 Remove errant background colour from some labels 2016-11-30 16:07:02 +01:00
baldurk 27bba7ae6b Revert completely broken UI from SPIR-V disassembler change
* The progress bar in commit eaa85bf1fa is
  utter nonsense, re-implemented as a progress popup.
2016-11-22 11:11:34 +01:00
baldurk f7e939cda9 Sort node selection from treelistview before iterating on copy-paste. 2016-11-13 13:50:40 +01:00
baldurk 7aec327133 Implement shader edit & replace for D3D12 2016-10-21 21:44:24 +02:00
baldurk 3e94689089 Add UAVs into UAV list 2016-10-21 21:44:24 +02:00
baldurk 1c3b4dfc94 Add support for SM5.1 bytecode changes - primarily resource arrays 2016-10-21 21:44:24 +02:00
baldurk f756cf363e Remove legacy DXBC padding of cbuffers array. Also stub reg spaces
* Historically there was no bindpoint mapping so it was convenient to
  just pad the cbuffers array so that the elements in it were indexed by
  their bind point. It doesn't make any sense anymore especially with
  D3D12's bind model, so just remove it and roll bind points into a
  struct member.
2016-10-21 21:44:24 +02:00
baldurk c37ee2bb03 Display table index for root sig elements 2016-10-14 09:58:15 +02:00
Adrian Bucur eaa85bf1fa Enable SPIR-V External Disassembler Tool
- Added the ability to select an external SPIR-V disassembler and to use
  it for editing any of the shaders in the pipeline.
  Tested with SPIRV-Cross (https://github.com/KhronosGroup/SPIRV-Cross)
  Fragment, Vertex, Geometry, Compute shaders
2016-10-06 13:02:23 +02:00
baldurk bfcfcd37b5 Make sure DSVs show up with their view parameters properly. 2016-09-28 15:51:54 +02:00
baldurk 3d9a32d4e0 Autosize the compute shader row, to account for the debug bit wrapping 2016-09-23 13:03:45 +02:00
baldurk 24bc741d8c Root constants are always 'filled' 2016-09-23 12:09:20 +02:00
baldurk 06e6677616 Divide up register spaces by shader stage (namespacing same as DX11) 2016-09-23 11:41:16 +02:00
baldurk 6fdc883388 Make sure to add a note if a resource is not visible 2016-09-22 17:52:25 +02:00
baldurk 5951ed723b Pass resource state data per-resource through for D3D12 2016-09-22 17:05:28 +02:00
baldurk db3181e7bb Implement D3D12 pipeline state, with shader resources 2016-09-22 16:55:41 +02:00
baldurk 0f660e3ec2 Create and fill out D3D12 pipeline state, without shader resources.
* We make shaders into fake resources with IDs, so they can be
  identified individually (for replacement, fetching reflection data,
  and things like that). This is a little but ugly but worth it for the
  simplicity it will provide everywhere else.
2016-09-22 12:05:47 +02:00
baldurk 8b1a26287d Update D3D12 pipeline state to roughly match D3D12 state 2016-09-22 12:05:47 +02:00
baldurk af9017af0a Add D3D12 pipeline state (state and viewer duplicated from D3D11) 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 b6c4e3c612 Don't trash view from tag, to avoid aliasing multiple views of same buf 2016-08-30 17:05:16 +02:00
baldurk 6a7ccb9670 Check if views have the raw flag first before checking struct size 2016-08-30 16:58:39 +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 96e0444183 Hook up SO stream elements to open buffer viewers properly. 2016-08-25 21:07:40 +02:00
baldurk e8e3d50c86 Expose the different local and remote renderers to the UI 2016-08-24 15:53:58 +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 33ed86a45b Print stencil refs and masks as hex in OpenGL. Refs #303 2016-07-22 21:50:44 +02:00
baldurk fcca358d0c Handle casting view types for swapchains (non-typeless resource) 2016-07-22 19:18:36 +02:00