baldurk
134d01427a
Add support for VK_KHR_shader_float_controls2
2025-02-13 18:32:21 +00:00
baldurk
813dad9217
Add support for VK_KHR_shader_expect_assume
2025-02-13 18:32:21 +00:00
baldurk
2a994186aa
Add support for VK_KHR_shader_maximal_reconvergence
2025-02-13 18:32:21 +00:00
baldurk
839f543bae
Add support for VK_KHR_shader_quad_control
2025-02-13 18:32:21 +00:00
baldurk
eeec813f70
Fix poor parsing of proc/maps file. Closes #3540
2025-02-13 18:32:21 +00:00
baldurk
b02dbdc1b5
Add RP normalisation option
2025-02-13 18:32:21 +00:00
baldurk
34d4cd51ef
Update for renamed AMD dll
2025-02-13 18:32:21 +00:00
baldurk
08d2ad0294
Update vulkan headers to 1.4.307
...
* Trivial promotion of these extensions:
- VK_KHR_depth_clamp_zero_one
- VK_KHR_compute_shader_derivatives
2025-02-13 18:32:21 +00:00
baldurk
57a9b8e80b
Update SPIR-V headers
...
* Also update generator script to add new edge cases
2025-02-13 10:52:21 +00:00
Cam Mannett
faba2915e7
Add action callback support to AS creation commands
2025-02-12 11:28:38 +00:00
lifeisforu
3bd0721da8
Wrong assertion occurs when bulding acceleration structure
...
byteSize was already combined to dstoffset, so it must be tested using vbSize.
2025-02-12 10:09:28 +00:00
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