baldurk
204f003f2b
Ensure safe state is used for RT builds on compute command buffers
2025-02-11 14:06:01 +00:00
baldurk
0859fd0a95
Fix handling RT VBs with stride of 0
2025-02-11 14:05:46 +00:00
baldurk
b5294824f7
Use custom heap for auditing readback buffer
...
* Can't use readback heaps for postbuild info, so need to stick a fake mustache
on the readback heap
2025-02-11 13:43:23 +00:00
baldurk
c2c055f807
Fix accidental case fallthrough
2025-02-11 00:22:11 +00:00
baldurk
1c7a4c24dd
Unwrap staticmethod if necessary when checking python docstrings
...
* Happens on github CI for some reason.
2025-02-11 00:21:39 +00:00
baldurk
83a3f480c2
Update CI to build on ubuntu-22.04
...
* ubuntu-20.04 is being deprecated by github's runners
2025-02-11 00:21:09 +00:00
baldurk
98ce506da5
Specialise std::hash for old gcc/clang
2025-02-10 18:28:53 +00:00
baldurk
108987fdd9
Remove unused variable
2025-02-10 18:23:21 +00:00
baldurk
6c87445a03
Don't scissor shaderOut in pixel history
...
* This is not strictly necessary, just reduced wasted GPU work, but potentially
this could affect accurate output for these values. We only need to scissor
for cases where we're doing counters for checking writes and test passes.
2025-02-10 17:52:31 +00:00
baldurk
1befd5c32a
Always consider subgroup index non-flat
...
* This is needed to ensure we get the right value for helper lanes
2025-02-10 17:52:31 +00:00
baldurk
cfefa5d5ef
Add a test for new group ops
2025-02-10 17:52:31 +00:00
baldurk
da04916a77
Update capability & extension checking for SPIR-V debugging
2025-02-10 17:52:30 +00:00
baldurk
af645809e5
Implement subgroup operations in SPIR-V debugger
2025-02-10 17:52:30 +00:00
baldurk
56decb5d8c
Pass current active mask of workgroup to threads when stepping
2025-02-10 17:52:30 +00:00
baldurk
876b0f8ff7
Pass subgroup size separately from workgroup size when beginning debug
...
* For compute shaders these can be different, in vertex/pixel these are at most
identical
2025-02-10 17:52:30 +00:00
baldurk
c3abc4504c
Fetch subgroup data for vertex & compute shaders the same as pixel
2025-02-10 17:52:30 +00:00
baldurk
1347741463
Add some helpers for setting up debug-grab patching spec constants
2025-02-10 17:52:30 +00:00
baldurk
c52878b072
Add names and some missing destroys to GPUBuffers
2025-02-10 17:52:30 +00:00
baldurk
1ac3cf6baa
Add dummy buffer writes to PostVS on binding path
2025-02-10 17:52:30 +00:00
baldurk
af4bd659e0
Add fetch of subgroup data via GPU readback, handling helpers in PS
2025-02-10 17:52:30 +00:00
baldurk
8d3f40b0a9
Prepare SPIR-V debugger for larger workgroup sizes
...
* The workgroup size is passed in at creation time, and we handle the potenttial
for multiple quads by identifying quads via quad ID
2025-02-10 17:52:30 +00:00
baldurk
1cfb684d16
Fetch subgroup configuration (which extensions) and max subgroup size
2025-02-10 17:52:30 +00:00
baldurk
7fcf64a562
Add query for per-thread properties when shader debugging
...
* This is distinct from input values or builtins because they're entirely
internal for configuring the workgroup
2025-02-10 17:52:29 +00:00
baldurk
983cf91ef0
Track enabled status of some subgroup vulkan extensions we care about
2025-02-10 17:52:29 +00:00
baldurk
b191a02cd1
Add helper tracking in SPIR-V editor to track U32 constants
...
* It's nice to avoid redeclaring the same constant over and over
2025-02-10 17:52:29 +00:00
baldurk
c5b0cd2423
Add development-only checks of SPIR-V edits for valid IDs
2025-02-10 17:52:29 +00:00
baldurk
f3ed63c7bf
Refactor PS Input fetcher patch to be less pixel-specific
...
* We also (for now) preserve the existing entry point to keep codegen as similar
as possible.
2025-02-10 17:52:29 +00:00
baldurk
046b5a0fd1
Add a pipeline cache to speed up repeated recreation of patched shaders
2025-02-10 17:52:29 +00:00
baldurk
aae58c765a
Add a helper for changing/wrapping an entry point in another function
2025-02-10 17:52:29 +00:00
baldurk
4ad2deb049
Add a helper for running an action with proper barriers for feedback
2025-02-10 17:52:29 +00:00
baldurk
7369b8ad6c
Refactor vulkan shader debugging to not apply derivatives
...
* We still use derivatives to fetch the input values for the quad when
debugging, but we do it on the shader side and read back the raw inputs rather
than input+derivatives
2025-02-10 17:52:29 +00:00
baldurk
0af29aa6a2
Remove old helper function
2025-02-10 17:52:29 +00:00
baldurk
3fdbcbe638
Update VSOut fetch to use new patched-descriptor helpers
2025-02-10 17:52:28 +00:00
baldurk
26ef7efaa5
Update shader debugging to use new patched-descriptor helpers
2025-02-10 17:52:28 +00:00
baldurk
9bcb68c2de
Update bindless feedback code to use new helpers
2025-02-10 17:52:28 +00:00
baldurk
2d067b0e70
Update pixel history dummy write workaround to use new helpers
2025-02-10 17:52:28 +00:00
baldurk
770ee04172
Add common shortcut to write a GPUBuffer to a storage descriptor
2025-02-10 17:52:28 +00:00
baldurk
18ee579490
Centralise helpers for common shader patching tasks
...
* These are the API-side helpers. One makes it easy to declare and add a
new buffer for output, handling BDA (KHR and EXT) and plain bindings
if needed.
* Another is a helper for "grab current state, substitute in a
shader's SPIR-V, ready to do a single draw/dispatch"
2025-02-10 17:52:28 +00:00
baldurk
f557c47c09
Store bindpoint inside VulkanStatePipeline
2025-02-10 17:52:28 +00:00
baldurk
07396bb1b8
Add helper for fetching GPUBuffer address
2025-02-10 17:52:28 +00:00
baldurk
025f1c6b01
Add new helper function for adding reserved descriptors to app desc set
...
* This is a temporary duplication of PatchReservedDescriptors to make a
refactoring easier with smaller commits, and is mostly identical but returns
its data in a struct instead of as loose outputs.
2025-02-10 17:52:28 +00:00
baldurk
70295c39a8
Add quick helper to resize-up feedback buffer
2025-02-10 17:52:28 +00:00
baldurk
f7c3bb61fe
Calculate desired patched-buffer storage mode once
2025-02-10 17:52:28 +00:00
baldurk
44bda13dbe
Add some higher level SPIR-V editing helpers
...
* These both automate some common (and verbose) tasks and also add extra helpers
for declaring a new output buffer that might come via BDA or via a binding.
2025-02-10 17:52:28 +00:00
baldurk
6868b67747
Calculate which scopes are available to a given thread when debuggng
...
* This is conservative as it's not calculated per-entry point, but over-
simulating threads is not expected to be a huge issue.
2025-02-10 17:52:27 +00:00
baldurk
f287da5bdf
Fix assert on sparse page tables
2025-02-10 17:52:27 +00:00
Jake Turner
0a302c6707
Remove DXIL Debugger TODO's that have been done
2025-02-10 14:24:00 +00:00
baldurk
3c1fcf4616
Try to be more robust in the face of repeated VK_ERROR_OUT_OF_DATE
2025-02-07 11:28:25 +00:00
baldurk
2c5fee7c07
Set mesh viewer tables to always have a scrollbars
...
* This can prevent a very rare resize loop
2025-02-07 11:28:25 +00:00
baldurk
b691f2421e
Update vkconfig check
2025-02-06 17:55:07 +00:00