Commit Graph

1911 Commits

Author SHA1 Message Date
baldurk 188007eb46 Exclude modifier/toggle keys from key bindings 2025-12-08 18:24:19 +00:00
baldurk bae6f79dee Catch conflicting binds and warn to ensure no duplicates 2025-12-08 18:24:19 +00:00
baldurk f86aa4a2b7 On windows/linux convert known native scancodes to default keys
* This lets us have more helpful behaviour for default keys rather than being
  all-or-nothing, and display which keys are which.
2025-12-08 18:24:19 +00:00
baldurk dbb8b2d022 Fix flycam and arcball not having same reset parameters
* Both were centring around the AABB but arcball had a scale applied to the
  distance
2025-12-08 18:24:19 +00:00
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
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 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 f37b4ee631 Set correct array size 2025-09-10 20:58:19 +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 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
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 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 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 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
baldurk 82e963550a Display read-only DSVs more clearly in D3D pipeline state 2025-07-08 13:37:37 +01:00
baldurk 0293487eb8 Properly handle D3D11 constant buffers with a 0 range specified 2025-07-04 14:10:51 +01:00
baldurk f94a479939 Fix a potential crash while closing a capture 2025-07-04 10:16:53 +01:00
baldurk 6be083f66a Display space and register for root parameters in root signature viewer 2025-06-30 11:06:13 +01:00
baldurk 9bad0c5ec0 Remove some memset calls on non-POD types 2025-06-06 12:16:54 +01:00
baldurk 93617f3d11 Adjust shader viewer highlight colours for dark theme 2025-06-05 17:11:45 +01:00
baldurk 18cb138aa3 Do not allow error reports on fatal error from dev/unoffiical builds 2025-06-03 14:20:33 +01:00
baldurk 435956cf4d Format VK_WHOLE_SIZE properly on texel buffers in pipeline state 2025-05-26 15:00:00 +01:00
Jake Turner f120f46b45 ShaderViewer UI validation for ShaderVariable construction
if members.size() == 0
rows * columns must be between 1 and 15
type must not be Struct

if members.size() > 0
type must be Struct or Unknown or ConstantBlock
rows must be 0
columns must be 0
then recurse and check construction of each element of members array
2025-05-19 16:44:25 +01:00