Commit Graph
12007 Commits
Author SHA1 Message Date
baldurk 29959d8993 Optimise filling of debug source variables in very large shader cases 2026-07-15 14:28:56 +01:00
baldurk aabc2d5b19 Display debug scopes in shader disassembly 2026-07-15 14:26:17 +01:00
baldurk 4190a32c8c Reset indent between functions in SPIR-V disassembly
* If something goes wrong and the indent isn't properly tidied, we know we can
  at least start from 0 at a new function
2026-07-15 11:04:52 +01:00
baldurk 1e40fa4251 Handle dummy/empty switches in SPIR-V disassembly
* Slang seems to sometimes output dummy switches which aren't needed and confuse
  the disassembly. In cases they are needed we need to identify when a break to
  them short-circuits other control flow and close them.
2026-07-15 11:04:29 +01:00
baldurk b013798e32 Fix some SPIR-V disassembled if()s exiting too early
* If the merge block is the main body of the if that implies there is fall-
  through to the else case, it is more confusing but equivalent to putting the
  merge block as the else case as the merge block doesn't have to be after the if.
2026-07-15 11:03:08 +01:00
baldurk 1f3334d358 Fix loops not printing breaks in SPIR-V disassembly
* If the end of the loop exits it's a redundant goto but similar to switches we
  still want the break
2026-07-15 11:01:31 +01:00
baldurk 274042a1a7 Fix disassembly of SPIR-V loop continues
* An actual continue will need to print a goto to the increment block as we
  don't try to disassemble for loops
2026-07-15 11:00:37 +01:00
baldurk 899cf98fd1 Tweak message about selected replay physical device 2026-07-13 23:25:11 +01:00
Jake Turner 4cf6cbd6be Documentation fix incorrect link in VKDescriptorSet::dynamicOffsets
PipeState.GetConstantBuffer -> PipeState.GetConstantBlock
2026-07-11 14:42:04 +01:00
Jake Turner a0caa3399f Improve Vulkan handling of zero count Submits 2026-07-08 12:43:40 +01:00
Jake Turner 14d36bd0ba Removed unused (and uninitialised) BakedCmdBufferInfo::customResolve 2026-07-08 10:49:32 +01:00
baldurk 62a58c87b0 Fix sorting of vulkan extensions 2026-07-03 16:58:35 +01:00
baldurk d0e9d73d3c Implement support for NV diagnostics extensions
* These are treated as read-only, we replay checkpoints but they are for
  aftermath so don't mean anything.
* This allows applications to leave aftermath on, normally this could be
  silently allowed but aftermath affects shader compilation when enabled.
2026-07-03 16:31:41 +01:00
baldurk 5904abda3a Match enum order in ToStr() 2026-07-03 16:31:41 +01:00
baldurk 55411fe5ee Remove duplicated CmdBeginCustomResolveEXT in hookset init 2026-07-03 16:31:41 +01:00
baldurk 130e801183 Add missing VK_EXT_custom_resolve feature check 2026-07-03 16:31:40 +01:00
baldurk 0a1a33df51 Update vulkan headers to 1.4.356 2026-07-03 16:31:40 +01:00
baldurk 2e351a8801 Update SPIR-V files to latest 2026-07-03 14:19:33 +01:00
baldurk 4edf26d6f7 Choose native VS toolset per version as with SDK version 2026-07-02 16:24:42 +01:00
baldurk 6a504631e2 Allow serialising normal/estimated chunks as 64-bit if predeclared
* Normally we only allowed 64-bit chunks in initial contents where the size was
  known up front and they were serialised direct to file.
2026-07-02 16:13:50 +01:00
baldurk e63d25eb36 Bump version to v1.46 2026-07-02 16:13:32 +01:00
baldurk 30daa3833a Fix incorrect resetting of buffers if created with new-barrier functions 2026-07-01 11:00:06 +01:00
baldurk ae08f97f6f Leak objects on shutdown if GL context can't be current. Closes #3858
* When a context is destroyed if we can't make it active somehow it's too late
  to destroy anything. We have to assume/count on drivers cleaning up objects.
  With sharegroups this may leak for a while unfortunately.
2026-06-29 12:22:42 +01:00
baldurk abd06a8d1c Ignore pipeline caches that are too large for 32-bit chunk size 2026-06-26 11:32:59 +01:00
baldurk 20b908968f Force declaration of bool helpers to be uint. Closes #3856
* Reflection here is inconsistent, with descrepancies between GL and SPIR-V
  reflection. To be safe and consistent we force uint in all cases.
2026-06-22 13:52:14 +01:00
Jules Maselbas 6660344c3d Fix GLES wireframe overlay with non-indexed draw
Wireframe overlay was missing the offset of the first vertex in the
draw call and resulted in showing an incorrect wireframe.

This is easily fixed by using the vertexOffset as the first index to
use, just like an indexOffset.
2026-06-09 18:09:02 +09:00
baldurk a4e158eafa Shader objects should not be considered specialised
* These can't be re-used with different pipelines, there is only one version
  (specialised or not) when the object is created. When looking up reflection
  for a shader we use the pipeline only to find the right one so this would
  cause the lookup to fail.
2026-06-08 11:03:51 +01:00
Jake Turner 1a0c70bac8 Clamp Vk Indirect partial replay draw count
i.e. partial replay of an indirect with zero draw count
2026-06-04 11:55:56 +01:00
Jake Turner 2774a629ca Fix Vk Indirect replay when replaying the Indirect pop marker
Also when replaying the parent action which contains the Indirect actions
2026-06-04 11:54:54 +01:00
Jake Turner d4ad181d08 VK IndirectDraw fixes primarily for overlay handling
- Unify Draw Indirect replay callback handling into a helper functions (for Draw* and DrawMesh*)
- Replay callback handling uses its own Indirect Buffer for partial replay
- Fix event skipping when at an event inside the outer Indirect action
  - The curEID might not be the same as baseEventID.
  - This could skip later events which should be replayed, if for example doing multiple partial replays.
- Fix DrawMesh Indirect HandlePreCallback() not specifying ActionFlags::MeshDispatch in all cases
2026-06-04 11:47:01 +01:00
Jake Turner d3c5312377 Vulkan overlay TriangleSize (Pass) : set the viewport per event
The viewport might change during the pass leading to different Triangle Size results for (Pass) and (Draw) modes
2026-06-04 11:42:35 +01:00
Jake Turner 83d996b369 Fix incorrect EID skipping for single Vullkan Indirect Draws
m_RootEventID needs to be incremented to keep in sync with skipping the fake indirect subcommand event
2026-06-04 11:42:01 +01:00
Jake Turner e665bc0a12 Add correct action flags to zero sized Vk indrect draw count
Fixes overlay Clear Before Draw/Pass, Overdraw (Pass) Triangle Size (Pass) not rendering on zero sized indirect draw count
2026-06-04 11:41:23 +01:00
Jake Turner 2b10586ba0 Fix D3D12 ExecuteIndirect incorrect EID in action callback
When replaying a single event inside a multi-action Execute Indirect i.e. QuadOverdraw (draw) for a single draw inside an ExecuteIndirect
Also when replaying multiple events inside a multi-action Execute Indirect i.e. QuadOverdraw (pass) on the second draw inside an Execute Indirect draw with three draws
2026-06-02 08:32:04 +01:00
Jake Turner 469cbc0e33 Fix D3D12 EI action callback loop Pop Marker detection 2026-06-02 08:32:04 +01:00
Jake Turner 14cba9a0dc Add missing .OffsetOrSize() to Vulkan Indirect Count replay loading 2026-06-01 11:23:33 +01:00
Jake Turner 6c1f6e69be Fix EID counting when using D3D12 Command and Queue Annotations 2026-06-01 11:23:33 +01:00
Jake Turner ed795ee56f Fix EID counting when using D3D12 Queue Annotations 2026-06-01 11:23:33 +01:00
baldurk 4a5e5e999e Ensure samplers are passed through properly for used descriptors 2026-06-01 10:46:48 +01:00
baldurk b21d873108 Don't serialise garbage bytes in D3D11 blend state 2026-05-29 13:58:16 +01:00
baldurk 9fd549698b Fix triple-promotion handling of EXT line stipple. Closes #3841 2026-05-26 16:16:53 +01:00
Jake Turner be10d61025 Improve D3D12 ExecuteIndirect PopMarker detection
Get the ActionDescription and check the ActionDescription flags for PopMarker
2026-05-20 15:50:25 +01:00
Jake Turner b6925a64fb PostDraw callback change the commands signature used in ExecuteIndirect
The same scenario as HandlePrecallback() modifying the command signature
2026-05-20 10:16:30 +01:00
Jake Turner 715fce0b5d D3D12 QuadOverdraw recreate the EI command signature if required
Fixes validation error

D3D12 ERROR: ID3D12CommandList::ExecuteIndirect: Root Signature set does not match with Root Signature declared in the command signature [ EXECUTION ERROR # 744: EXECUTE_INDIRECT_INVALID_PARAMETERS]
2026-05-20 10:16:30 +01:00
Jake Turner 2723a9e96e Added D3D12 helper DoesCommandSignatureModifyRootArgs()
Moved code out of D3D12 Shader Feedback ready to be used by the D3D12 Overlay code
2026-05-20 10:16:30 +01:00
Jake Turner 42ffc71a0d Fix D3D12 EI event skipping when at an event inside the outer EI action
The curEID might not be the same as baseEventID.
This could skip later events which should be replayed, if for example doing multiple partial replays.
Fixes device lost triggered when using TriangleSize (Pass) overlay.
2026-05-20 10:16:30 +01:00
Jake Turner 2795df7dd1 Fix D3D12 EI action callback loop when selecting the EI pop marker 2026-05-20 09:58:02 +01:00
Jake Turner 02e9c7b260 Change comment about "list of notes" -> "list of nodes" 2026-05-19 11:59:46 +01:00
baldurk e5913acec2 Change variable to local to avoid clashes on threads 2026-05-18 17:29:30 +01:00
baldurk c8acf77826 Fix disassembly of half constants in DXIL 2026-05-18 15:28:29 +01:00