Commit Graph

2967 Commits

Author SHA1 Message Date
baldurk 45eabffb54 Update mesh viewer to allow better customisation. Closes #1811 2025-12-08 18:24:19 +00:00
baldurk 5b1b57d703 Add a dialog for configuring unprojection parameters 2025-12-08 15:50:17 +00:00
baldurk b0b14c1b7b Add a dialog for customising camera controls in mesh viewer 2025-12-08 15:50:17 +00:00
baldurk 7e518e813c Add support for fully customised mesh viewer controls 2025-12-08 15:50:17 +00:00
Jake Turner c2015de391 Resource Usage UI changes
Add a column that shows the parent marker for the event range (by default the end event ID)
Add an option to prevent combining resource usage across markers (group by marker)
The tooltip for a resource usage entry contains the full marker path
2025-12-03 11:20:23 +13:00
baldurk 0a15153330 Add a compute debugging UI selector to the GL pipeline state view 2025-12-02 12:17:36 +00:00
baldurk ddf19304b7 Handle resources encountered in the SPIR-V debugging that don't exist
* It is common for drivers to dead-code eliminate resources and they will not
  show up in reflection at all and will not have a binding. For these we will
  still encounter them when debugging so need to ensure we handle that case.
* This unfortunately makes a previously illegal/error-checked case silently
  continue, so we add API-specific asserts.
2025-12-02 12:17:35 +00:00
Jake Turner ccbb516610 Simplify DXIL Disassembler/Debugger SSA ID name strings and aliases
Store SSA ID name strings in a container which is shared between the disassembler and the debugger.
The SSA ID name strings are guaranteed to be unique by appending the SSA ID value.

Do not use resource names for SSA ID names, only show resource names when a DXIL handle is created i.e. DXOp::CreateHandle, DXOp::CreateHandleFromBinding & DXOp::CreateHandleFromHeap

This means the debugger now has a unique name for each ShaderVariable generated.

Revert the ShaderViewer consistency changes which were only required because the DXIL debugger did not generate unique names for ShaderVariables.
2025-11-13 13:10:44 +13:00
Jake Turner c534b41eb6 Tune the ShaderVariable consistency checks for resources
Do not check before/after equals existing value for ReadOnlyResource and ReadWriteResource
In the DXIL debugger for resources the same SSA ID might have different names
2025-11-11 10:53:15 +13:00
baldurk 48088ac07e Add handling of D3D shaders which declare no output value 2025-10-27 11:50:36 +00:00
baldurk 2f6bb02347 Fix some sizing issues with CS labels in D3D11 pipeline state view 2025-10-21 23:31:22 +01:00
baldurk 466a11100c Add new checks for vkconfig, and detect after startup
* We check every couple of seconds for the vkconfig file (and then stop checking
  after warning) so that users are more likely to see the warning.
2025-10-21 23:31:22 +01:00
baldurk 4db8616ec4 Fix double click on FBO entry in GL pipeline state not opening texture 2025-10-21 23:31:22 +01:00
baldurk 824c8c1345 Don't match builtin inputs to vertex input attributes 2025-10-09 12:31:58 +01:00
baldurk 9e0d6f18d6 Display a message when we can't debug a pixel shader and show a history 2025-10-08 22:34:53 +01:00
Jake Turner 39c7dc1027 Fix python message handling reading out of bounds read 2025-09-24 15:47:14 +01:00
baldurk 26cf7d3d7f Ensure shader reflection information is stored as const
* Avoids accidental modifications
2025-09-22 11:58:56 +01:00
baldurk baecdd85ca Improve arrow key nudging behaviour on NPOT mips in texture viewer 2025-09-19 14:13:01 +01:00
baldurk fd86ca4ddc Allow editing zoom level text when fit-to-window is enabled
* We need to disable it before changing the zoom level.
2025-09-19 11:01:12 +01:00
baldurk 998b1c7ee0 Don't offer option to debug pixel on events that are not draws 2025-09-17 17:09:39 +01:00
baldurk 7734a36228 Fix shader clears to properly reset all labels 2025-09-17 11:26:08 +01:00
baldurk 86e6941265 Use device independent scaling for height calculation 2025-09-17 11:25:59 +01: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 b9b8fe4b1b Claim proper contents margins for height of RDLabels with rich text 2025-09-16 16:29:57 +01:00
baldurk 511c33c52a Handle Expanding policies in flow layouts 2025-09-16 16:29:25 +01:00
baldurk f37b4ee631 Set correct array size 2025-09-10 20:58:19 +01:00
baldurk 5957a2710b Enforce that all docstrings of members have a :type: 2025-09-09 18:57:35 +01:00
baldurk fff4e0d5e4 Improve displayed sorting of descriptor buffer sets in pipeline state 2025-09-09 18:57:34 +01:00
baldurk b4615dbd18 Add a delayed callback helper for python 2025-09-09 18:57:34 +01:00
baldurk b3cec5a4cf Add a helper to clear the set of debug messages from python 2025-09-08 17:29:08 +01:00
baldurk bb2ac5ee27 Fix variable advance for packed 10:10:10:2 and 11:11:10. Closes #3685 2025-09-08 16:35:41 +01:00
baldurk 2702bb1469 Update old copyright years in about dialog and module metadata 2025-09-08 16:35:40 +01:00
baldurk d4c907faa1 Fix sorting of bindings in vulkan pipeline state with descriptor buffers 2025-09-03 10:01:48 +01:00
baldurk ffa70fabdc Auto-break on NonSemantic.DebugBreak instructions
* This is almost completely worthless as it seems at least NV and amdvlk both
  actually crash the GPU on this instruction, meaning there's no way to get it
  to the shader debugger. But on other drivers like radv, or maybe if this is
  fixed in future, this will be useful.
* For this reason it also can't be tested automatically.
2025-08-21 16:09:40 +01:00
baldurk 52c1cae925 Follow symlinks when iterating extension folders on linux 2025-08-20 10:24:44 +01:00
Hans-Kristian Arntzen 814d764df7 Fix exporting large raw buffers at an offset. 2025-08-20 00:05:29 +09:00
baldurk fd61a60a42 Fix error with structured object iteration 2025-08-15 13:44:56 +01:00
baldurk ec01df4fd4 Fix errors with pre-declaring swig wrappers 2025-08-15 13:42:46 +01:00
baldurk fb2c09a4d9 Fix crash if APIInspector::RevealParameter is called for hidden object
* There's nothing to expand for hidden objects so make sure we don't crash or
  expand the wrong item.
2025-08-15 12:56:26 +01:00
baldurk bd193696b8 Prevent infinite recursion if python class doesn't override all methods
* We shouldn't require 'pure virtual' functions in CaptureViewer implementations
  in python, so detect when the derived class methods point to the base class
  pass-throughs, and skip them in that case.
2025-08-15 12:56:26 +01:00
baldurk adf8acbccd add pcre build step if it's not found locally
* Unfortunately the new upcoming debian has made the really poor decision to
  actively *delete* the pcre package, breaking any programs depending on it even
  at build time. As far as I can see it's still available in most other common
  distributions.
* Users could easily build it themselves but would have to install it system
  wide for it to be picked up. This kind of dependency absolutely should not be
  something the build system has to set up itself but when distributions make
  poor choices we have little choice but to adapt somehow.
2025-08-07 15:56:08 +01:00
baldurk dbeeb67459 Display a specific message for resources with no usage tracked
* Currently we only track usage for buffers and textures.
2025-07-31 17:10:14 +01:00
baldurk 9bfcb76e0b Try to de-elevate after applying an update to not run UI as admin 2025-07-31 17:10:14 +01:00
baldurk e6a7b36cdc Add the ability to cancel an update while it's downloading. Closes #3162 2025-07-31 17:10:14 +01:00
baldurk 799a9a8452 Report and display descriptor buffer state in pipeline view 2025-07-30 22:10:25 +01:00
baldurk ceb062b658 Add a DescriptorType to GetDescriptors query
* This will be optional in many cases but for some situations might be required
  when type information is not implicitly available in the descriptor store.
  Generally it should always be available unless the descriptor store is being
  viewed 'blank' purely from its contents with no other context.
2025-07-30 22:10:23 +01:00
baldurk 9545e6f27b Add specific annotation for GPU address serialised values 2025-07-30 22:10:22 +01:00
baldurk 3be544c51d Prevent infinite recursion when processing includes for shader edits 2025-07-29 13:05:07 +01:00
Andrew Marshall c612fdeb29 remove superfluous changed for macos build 2025-07-18 16:20:56 +01:00