Commit Graph
39 Commits
Author SHA1 Message Date
baldurk fcf298cff9 Implement support for predication on D3D12. Closes #2095 2026-02-04 22:33:57 +00:00
baldurk 1df4a75a97 Remove shader controls frames to allow full flow layout wrapping 2025-09-17 09:58:50 +01:00
baldurk 157941e31f Split shader/program labels in pipeline state views up to wrap better
* If program or shader names are very long then combining them can cause
  problems with how wide the widgets get. Splitting each element into a label
  that can wrap around and be truncated individually produces better behaviour.
2025-09-16 16:30:53 +01:00
baldurk 1194531fc5 Add a descriptor viewer for showing all of a heap, root sig, or set 2024-04-10 18:58:53 +01:00
Jake Turner f938afee2c PipelineStateViewer support right-click copy of stencil values
Having NoSelection caused nothing to be copied to the clipboard

Examples of copied data

D3D12 `Front Greater Keep Keep Replace FF FF 55`
D3D11 `Front Greater Keep Keep Replace`
GL `Front Greater Keep Keep Replace FF FF 55`
Vk `Front Always Keep Keep Replace FF FF 01`

Closes #3240
2024-02-06 05:45:52 -08:00
baldurk b0c97182f6 Implement baseline mesh shader on D3D12 2023-11-16 18:20:24 +00:00
baldurk 7de3fb54ee Implement new D3D12 state & state setting commands 2023-05-19 14:54:39 +01:00
baldurk a16e1e7995 Add a python script to sort .ui files so grid layouts are in order
* This will help in future to keep diffs more readable
2022-01-10 17:30:57 +00:00
baldurk 1c3f30d90d Resave all UI files with Qt Creator 5.15
* This gets rid of anything that might be changed with the latest version when
  updating these files
2022-01-10 16:57:43 +00:00
Steve Karolewics ec785ba167 Add ability to debug compute shaders by dispatch thread ID
In some cases it is easier to know the dispatch thread ID you want to
debug rather than the group/thread IDs. This change adds a new window
when the debug button is clicked, to allow you to specify which thread
to debug in the most convenient way.
2021-10-19 18:14:53 +01:00
baldurk 44431cd536 Explicitly mark depth states as 'disabled'. Closes #2296
* On all APIs when depth is disabled the writes are skipped as well. Explicitly
  set the function and write state to say that they are disabled.
* This also papers over a weirdness on D3D11 which has confused a couple of
  people, where the retrieved desc with GetDesc() on a state object can be
  different to the one it was created with when you set ignored parameters -
  like the depth function with depth disabled.
2021-06-22 10:37:49 +01:00
baldurk fe63f8b16d Set uniformRowHeights on Vulkan/D3D12 pipeline state tree widgets
* This prevents Qt from doing O(n) work to calculate row sizes in some cases
  when we know they're all going to be identical.
2021-06-08 14:23:56 +01:00
baldurk 9290ed926b Display VRS state in D3D12 pipeline state viewer 2021-02-10 14:20:46 +00:00
baldurk 96cc08b960 Rename 'show disabled' button to 'show unused' as it is clearer
* Bindings that are unused aren't disabled - they may in fact be explicitly
  enabled - but they are unused by the pipeline which is why they're hidden.
2019-05-17 16:32:55 +01:00
baldurk 96075bc575 Remove unwanted rowspan on D3D12 sample mask
* This messed up the grid outlines as it included another extra row that it
  shouldn't have.
2019-01-03 12:22:27 +00:00
baldurk 94dfb9890b Allow registering window, panel and context menu items with callbacks 2018-10-23 14:23:12 +01:00
baldurk 3c7b420e59 Expand SPIR-V disassemblers to general shader processing tools
* Instead of just configuring SPIR-V disassemblers and picking only the first
  one when we need to edit SPIR-V, we allow setting up any shader processor that
  goes between two shader encodings.
* When editing, the default will still be to use embedded source, and then after
  that the first tool that goes from the native shader format to a text format,
  but the drop-down allows you to pick any of them.
* Similarly in the shader viewer you can configure the compilation options and
  method, to choose the compiler you want to use. Embedded command line
  parameters in the shader are automatically appended.
2018-08-09 16:56:53 +01:00
baldurk 2c8674790c Add spacers in pipeline view for if all groups are collapsed 2018-06-13 09:17:03 +01:00
baldurk 72b40769b5 Add support for D3D12 up to D3D12.3. Closes #966 2018-06-07 14:49:07 +01:00
baldurk 3380379aac Fix copy-pasted tooltips mistakenly saying "Save Shader SPIR-V" 2018-05-04 13:36:43 +01:00
baldurk 5698c46277 Use collapsing group boxes on pipeline state viewer 2018-04-26 13:37:57 +01:00
baldurk e0fe401ca5 Add extra elements to pipeline viewer to display hidden state objects
* For example state objects on D3D11, or render pass on Vulkan.
* These are all properly resource-linked.
2017-11-21 19:10:35 +00:00
baldurk 2f02f2159e Fix some margins/spacings to be more consistent across the UI 2017-11-10 18:36:10 +00:00
baldurk d57cc1b188 Add more consistency to docking panels and widgets
* Dock panels shouldn't have any frame border or anything like that.
* They should have an external margin of 3 pixels at their border,
  but then no further margins on the layouts (like sub-controls for
  the pipeline state views.
* Toolbars should be Raised & Panel frames. Later we'll replace them
  with actual QToolBars to better customise the painting.
2017-07-28 19:06:46 +01:00
baldurk 89945f711d Switch to SVG topology diagrams
* We need to custom paint the SVG at the right devicepixelratio because
  Qt seems to be busted at scaling up - nothing I can see causes the
  SVG to be rendered at higher than it's default resolution, so you end
  up with plain bilinear upscale.
* Since we're doing custom palette swap anyway, it's not much harm to
  just render ourselves, as we already basically had a dependency on
  QtSvg - just need to add the include files to the dependencies.
2017-07-28 19:06:46 +01:00
baldurk 1e840356a1 Change pipeline state viewers so minimum panel size is smaller
* Add scroll areas for the larger tabs and allow pipe flowchart to
  resize to its minimum size if needed.
* The idea here isn't that anyone will seriously try to use the pipe
  view at 500x200 but more that the minimum size doesn't become a
  problem while moving around windows or panels, or resizing temporarily
2017-07-12 19:44:51 +01:00
baldurk bcd08f77a6 Set word wrap on fixed state labels in pipeline viewers
* This allows the pipeline state viewer to have a smaller minimum size
  which is useful when resizing the whole program UI.
2017-07-12 17:29:09 +01:00
baldurk 2831c4dfdd Set a proper sizeHint for the pipeline flowchart 2017-06-19 16:17:19 +01:00
baldurk d515c69a9f Remove alternating row colors in most places.
* This was only added because the default tree widget controls don't
  render any grid lines. Now that we're custom drawing them, the row
  colors are distracting and can be confusing on themes where the
  selected row is very faint.
2017-06-13 18:19:02 +01:00
baldurk fbf03ecd77 Set up pipeline viewers to re-draw the mesh icon in an appropriate color 2017-05-30 17:14:37 +01:00
baldurk 19218b6bef Remove hardcoded color stylesheets from shader labels in pipeline views 2017-05-29 17:52:25 +01:00
baldurk f65f5ea9da Use new RDTreeWidget everywhere in favour of QTreeWidget
* Since we're promoting everything, we reset the behaviour of
  RDTreeWidget so that it's not doing anything different by default.
* RDTreeWidget's interface is a bit different, exposing some useful
  things like a single selected item and so on.
* We also can't set columns in the Qt Creator UI anymore, so we set them
  from code.
2017-04-21 18:44:52 +01:00
Dimitris Kapnopoulos 6e06eb5164 Added tooltips for all QToolButtons. RDSplitter checks for valid index.
handleDoubleClicked in RDSplitter checks if the index argument is less than zero or bigger than count
2017-03-28 02:54:15 -07:00
baldurk 2ce133812f Set font size to 12 on pipeline flowchart 2017-02-14 19:14:52 +00:00
baldurk 871a48d7fa Add flowchart custom widget to show select pipeline stages 2017-02-13 19:20:25 +00:00
baldurk c2c8346699 Fix some UIC warnings about duplicated object names 2017-02-09 19:28:23 +00:00
baldurk 9e47ed53b5 Move resources.qrc into Resources/ folder 2017-02-09 19:28:22 +00:00
baldurk 82068eeab8 Set up D3D12 pipeline state view in Qt 2017-01-25 20:13:39 +00:00
baldurk 6ef7dbb356 Add pipeline state viewer and implement vulkan viewer
* Minus interactions with as-yet-unimplemented windows like buffer and
  shader viewers.
* Also missing HTML export
2016-11-24 19:47:05 +01:00