Commit Graph

11932 Commits

Author SHA1 Message Date
Virgile Bello ceeeaa5478 Gate multiview builtin shaders on multiview feature check 2026-04-20 17:55:24 +09:00
Jake Turner a606bcda53 Add EID shift to loose events & uaage after IndirectDraw*Count
Apply to loose events i.e. Barriers and resource usage in the current command buffer info
Fixes incorrect event ID in UI and resource usage for non-Action events at the end of a command buffer which contained IndirectDraw*Count calls
2026-04-16 16:10:00 +01:00
baldurk 748aeee584 Fix inconsistencies in exports D3D12 html state. Closes #3823 2026-04-16 14:00:58 +01:00
baldurk 0b9a36b581 Fix ID registration when false-duplication happens on replay
* We normally deduplicate during capture, but replay can introduce new
  duplication against internal objects. Using ReplaceResource() would fix this
  but updating the wrapper map is necessary for D3D11 to query current state
  properly.
2026-04-16 14:00:55 +01:00
baldurk c610f14a0c Use uint64 for internal co-ordinates in sparse tracker
* Without this then buffers over 32-bit range which are treated as a 1D resource
  could fail. Note that most APIs don't actually behave well with >=4GB buffers.
2026-04-15 22:12:33 +01:00
Wusiki Jeronii d6a7e60752 win32_hook: use local search name in Hooked_GetProcAddress ordinal path 2026-04-15 02:25:05 +09:00
Wusiki Jeronii 5461f5246a win32_hook: applied clang-format 2026-04-15 02:25:05 +09:00
Wusiki Jeronii 31078b8fb2 win32_hook: keep original func for ordinal GetProcAddress fallback 2026-04-15 02:25:05 +09:00
Wusiki Jeronii c8d69685ec win32_hook: preserve ordinal forwarding 2026-04-15 02:25:05 +09:00
Jake Turner ccc2a5023a D3D12 EI ActionCallback replay don't generate negative argidx
For an EI with a single argument then curEID == baseEventID because the fake push/pop markers are not present
2026-04-14 17:28:55 +01:00
Jake Turner 35437065a1 DXIL Debugger support for direct heap access Constant Buffers 2026-04-14 14:18:16 +01:00
Jake Turner 1a80b9b9a2 Add descriptor index to UAV/SRV error messages in DXIL Debugger 2026-04-14 13:26:26 +01:00
Jake Turner 4fad937d9e DXIL reflection default stride to one for ByteAddressBuffer
Fixes DXIL debugging of root constant ByteAddressBuffer
2026-04-13 14:48:54 +01:00
Carl 5b624afa43 Fixed missing switch case break on D3D12DescriptorType::CBV 2026-04-13 14:46:40 +01:00
baldurk f1ea0386d4 Handle NULL descriptors in D3D12 resinfo shader debugging 2026-04-10 23:20:32 +01:00
baldurk 3c5a63f2a1 Prevent misidentification of sampler heap in ray patching. Closes #3821 2026-04-10 11:38:05 +01:00
baldurk 48aa91d6c9 Fix type return for CBV descriptors on D3D12 2026-04-10 11:37:34 +01:00
baldurk 3c7bffe7b5 Only enable multiview geometry feature if base feature is enabled 2026-04-10 11:35:17 +01:00
Jake Turner 29c607559b Copy secondary command buffer non-action resource usage into the parent 2026-04-08 13:58:12 +01:00
Jake Turner 9b79944258 Special handling in DXIL Debugger for i1 literals i.e. bools
Match the debugger convention of true is 1, false is 0.
2026-04-03 16:55:46 +01:00
Virgile Bello 24c7cc4d04 D3D12: Fix deadlock in DiscardFrameCapture
DiscardFrameCapture releases m_RefBuffers and m_RefQueues while holding
a write lock on m_CapTransitionLock. When a resource's ref count reaches
zero, the destructor calls Unmap, which tries to acquire a read lock on
the same m_CapTransitionLock.
2026-04-02 01:22:50 +09:00
Jake Turner 3f57669509 Include parent command buffer flags in test for an active render pass
If the parent command buffer was begun with VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT then that implies an active render pass to propagate to the child command buffer.

Fixes incorrect error report in nested command buffers:
"Executing a command buffer with RENDER_PASS_CONTINUE_BIT outside of render pass"
2026-03-31 14:44:17 +01:00
Jake Turner a33b203f6c Replay create descriptor buffer buffer if failing to create wholeMemBuf
Apply similar fix done at capture time (75acc706f7) to replay
2026-03-31 11:38:43 +01:00
Jake Turner e4459b961b Secondary cmd buffers only add parent framebuffer usage to draw actions 2026-03-30 08:30:47 +01:00
baldurk 18e6d68772 Remove nvidia workarounds that have been fixed before or in 591
* Two of these were fixed in slightly earlier versions but the cutoff doesn't
  need to be exact, this major version is ~4.5 months old as of the time of
  this commit.
* The pipeline rebind workaround was likely fixed years ago.
2026-03-26 10:58:12 +00:00
Jake Turner 0582078a9e Fix up some minor C++ linter warnings in DXIL Debug source files 2026-03-25 11:49:28 +00:00
widberg feb00dc235 Add missing comma
Without the comma, this
"igvk32.dll",
"igvk64.dll"
"igxelpgicd32.dll",
"igxelpgicd64.dll",
becomes
"igvk32.dll",
"igvk64.dlligxelpgicd32.dll",
"igxelpgicd64.dll",
2026-03-25 00:31:43 +09:00
widberg 9ebfb6a1bc Remove #pragma once outside header 2026-03-25 00:31:43 +09:00
widberg c3dcdee57c Remove incorrect typename
T::IsForwardReferenceable is a static boolean member, not a type.
2026-03-25 00:31:43 +09:00
widberg 8396ceabd7 Add enum underlying type
The forward declaration of InterpolationMode already included its
underlying type. This commit does the same for ResourceRetType and
ResourceDimension.
2026-03-25 00:31:43 +09:00
widberg ec8f1d51f5 Move alignas
Placing `alignas` before the type is more in-line with the C++ standard,
Microsoft Learn examples, and other places in this codebase. While the
old way worked with MSVC, this is more consistent and improves
compatibility with other tools without affecting the MSVC build.
2026-03-25 00:31:43 +09:00
Jake Turner 7946282ad3 Do not read baked command buffer info with ResourceId()
Avoid creating a default entry in the map
2026-03-23 12:01:14 +00:00
Jake Turner 7383432a26 In ReplayQueueSubmit always advance m_RootEventID, m_RootActionID
Explicitly check for a valid command buffer Id instead of relying on m_LastEventID > startEID check to fix reading baked command buffer when selecting vkQueueSubmit
2026-03-23 09:40:05 +00:00
Jake Turner 5e5230ddbd Do not read baked command buffer info when selecting vkQueueSubmit Event
The command buffer id will be 0 which will make an empty entry in the map.
The submit will be skipped because startEID >= m_LastEventID.
Add asserts to catch invalid command buffer ID being used during ReplayQueueSubmit()
2026-03-20 08:57:38 +00:00
Jake Turner 533debb940 Fix Vulkan resource usage EIDs for events without an action
Change resource usage EID offset for events without an action to match usage EID offset for events with an action.

Simplify EID offset when adding events without an action.

Closer match to the D3D12 implementation.
2026-03-19 16:03:56 +00:00
Jake Turner f77ab6bd29 Remove ResourceUsage member view (which was optional)
No longer used anywhere
2026-03-19 09:37:03 +00:00
Jake Turner 6b16b327f2 Remove use of ResourceUsage view parameter from vk pixel history
Don't early ignore events by using the ResourceUsage view parameter, test the event for any modification.
2026-03-19 09:37:03 +00:00
Jake Turner 8fcbe0c2c2 Remove use of ResourceUsage view parameter from D3D11 pixel history
When doing history on depth targts, for ClearDepthStencil events, generate the DepthStencilView dimension from the depth target resource description instead of using the ResourceUsage view member.

Don't early ignore events by using the ResourceUsage view parameter, test the event for any modification.
2026-03-19 09:37:03 +00:00
baldurk d02d3de052 Add observed new NV 51:13 UBO descriptor format on 50 series
* The address is 64-byte aligned so shifted by 6, and the range 16-byte aligned
  so shifted by 4.
* The max UBO range is still 64k so 13 bits is 1 more than needed to represent
  all ranges.
2026-03-17 14:06:49 +00:00
baldurk dc8d61b028 Only fetch initial states for occlusion query heaps 2026-03-16 23:48:24 +00:00
baldurk aebb1f90ee Fix AoS output in mesh viewer being incorrect with mesh shaders
* This would generally only come up with gl_PerVertex, and was hidden before
  because gl_Position is the first member. It likely would also reproduce if a
  user had a struct output from the mesh shader.
2026-03-16 15:12:30 +00:00
baldurk 4f3fc2f0ff Remove unused indextype that is invalid for points. Refs #3816 2026-03-16 14:05:32 +00:00
baldurk 705ab0ea51 Tight alignment D3D12 bug workaround should apply to textures as well 2026-03-16 11:50:21 +00:00
baldurk 507a34d0fb Handle root signatures that alias our own
* We deduplicate on capture, but out root signatures are created before the
  replay so we use a replacement to handle that.
2026-03-16 11:49:41 +00:00
baldurk 7bb20b1d3a Fix for linux macro #define minor() 2026-03-14 10:31:47 +00:00
baldurk 74f895f650 Remove file that confuses old cmake 2026-03-13 21:41:23 +00:00
baldurk a3e8451857 Update CMakeLists.txt for new glslang files 2026-03-13 21:30:22 +00:00
baldurk 109e524d5c Improve cross-module references in docstrings 2026-03-13 13:07:44 +00:00
baldurk 6e3a0201a8 Determine python version from python module directly 2026-03-13 13:07:44 +00:00
baldurk 08d2fa96b6 Fix for compiling on 32-bit without if constexpr 2026-03-13 13:07:44 +00:00