Jake Turner
89526027d2
DXIL Debugger support for vector instructions
...
ExtractElement
InsertElement
ShuffleVector
2024-10-17 14:19:02 +01:00
Jake Turner
cd72381432
DXIL Debugger support for ptr cast instructions
...
PtrToI
IToPtr
2024-10-17 14:18:55 +01:00
Jake Turner
6a931a4082
DXIL Debugger handle different bit widths for logical operations
...
And, Or, Xor, ShiftLeft, LogicalShiftRight, ArithShiftRight
2024-10-16 16:48:47 +01:00
Jake Turner
bb87fef2cd
DXIL Debugger support for float cast instructions
...
FPTrunc
FPExt
2024-10-16 16:48:39 +01:00
Jake Turner
d987baff71
DXIL Debugger support for integer cast instructions
...
Trunc
ZExt
SExt
2024-10-16 16:48:25 +01:00
Jake Turner
605ff9d2d9
DXIL Debugger support for float/integer cast instructions
...
SToF
UToF
FToS
FToU
2024-10-16 16:47:42 +01:00
Jake Turner
62a737c713
DXIL Debugger support for Integer division and remainder instructions
...
Operation::UDiv
Operation::SDiv
Operation::URem
Operation::SRem
Remainder implemented using % which keeps the remainder having the same sign as the dividend
2024-10-16 10:16:37 +01:00
Jake Turner
8074aa4a89
DXIL Debugger support for FRem
...
Implemented using fmod() which keeps the remainder having the same sign as the dividend
2024-10-16 10:16:27 +01:00
Jake Turner
2bfbe81bde
DXIL Debugger support for Integer comparison instructions
...
Handle different bit widths to IEqual, INotEqual
Added support for:
UGreater
UGreaterEqual
ULess
ULessEqual
SGreater
SGreaterEqual
SLess
SLessEqual
2024-10-16 10:16:17 +01:00
Jake Turner
ca2138d283
DXIL Debugger extended support for Add, Sub, Mul instructions
...
Handle different bit widths
2024-10-16 10:15:51 +01:00
Jake Turner
98c1e6b12b
DXIL Debugger extended support for FAdd, FSub, FMul, FDiv instructions
...
Handle different bit widths
2024-10-16 10:15:27 +01:00
Jake Turner
514f45105a
DXIL Debugger extended support for FOrd*, FUnord* instructions
...
Added support (including half, float, double variants) for:
FOrdGreaterEqual
FOrdLess
FOrdLessEqual
FOrdNotEqual
FOrd
FOrdTrue
FUnord
FUnordEqual
FUnordGreater
FUnordGreaterEqual
FUnordLess
FUnordLessEqual
FUnordNotEqual
Extended existing support of FOrdEqual, FOrdNotEqual to handle half and double variants
2024-10-16 10:12:54 +01:00
Jake Turner
fa33bcfbfb
Add debug config variable D3D12_Experimental_EnableDXILShaderDebugging
...
When DXIL debugging is enabled, GetDebugStatus() matches currently supported LLVM instructions and DX.OP calls.
2024-10-16 10:10:40 +01:00
Jake Turner
d09235f30a
Change Mac github runner to MacOS13 instead of MacOS12
2024-10-15 17:25:39 +01:00
Jake Turner
019bf37a9b
Handle more scopes in DXIL Program::GetDebugScopeFilePath
...
If the scope tree does not end at a DIFile node then use the most recent non-NULL file metadata found when walking the scope tree
2024-10-15 15:55:32 +01:00
Jake Turner
9e747cd06b
D3D12_Sharing log any errors when creating shared handle
2024-10-15 12:09:09 +01:00
Jake Turner
e378267533
DXIL SettleIDs() assert that all instruction arguments have valid SSA Id
...
Move the check to its own pass after all instructions have been processed to properly handle loops and phi nodes
2024-10-15 09:37:46 +01:00
baldurk
781dfa47aa
Fix magic brew python commands to shut CI up
2024-10-09 14:30:33 +01:00
Jasmine Hansen
4e6cd9a0ae
Add shader debugging support for VkShaderEXT objects
...
Functions: DebugVertex, DebugPixel, DebugThread
2024-10-09 13:04:23 +01:00
baldurk
c00d498986
mark memory as BDA-containing for vkBindBufferMemory2
2024-10-09 13:03:37 +01:00
baldurk
f367dbdfc9
ignore BLASs with valid VAs but no created AS
2024-10-09 13:03:37 +01:00
baldurk
3a0dc4e50a
Fix crash if resizing buffer without previously submitted work
2024-10-09 13:03:36 +01:00
baldurk
7850861734
Handle completely empty TLASs
2024-10-09 13:03:36 +01:00
baldurk
763fbcf63d
Only set new dynamic states if pipeline uses them
2024-10-09 13:03:36 +01:00
baldurk
a59e0ffb21
Use correct type of heap for cached ASs
2024-10-09 13:03:36 +01:00
baldurk
987d08c301
Add some debug-tracked-only AS stats for overlay
2024-10-09 13:03:36 +01:00
baldurk
ea762adbfa
Fix warning in release
2024-10-07 11:26:31 +01:00
baldurk
18ba6e3230
Fix 32-bit compilation
2024-10-07 10:55:10 +01:00
baldurk
f6903d3d7d
Fix mac compilation
2024-10-07 10:55:04 +01:00
baldurk
8f88f1d125
Fix out of bounds array or iterator accesses
2024-10-04 10:32:32 +01:00
baldurk
cb1a2926fa
Fix pixel history potential use-after-free
...
* After resizing history events for overdraw the modification reference may no
longer be valid.
2024-10-04 10:31:56 +01:00
baldurk
5d0a85e8ca
Allow 'expected errors' in tests for RDResult returns
...
* This fixes the issue that tests of out-of-bounds and error behaviour trigger
debugbreaks. We don't apply this to RDCERR (currently) as it would generate
more code overall and it's easier to convert any new deliberate test errors.
2024-10-04 10:31:12 +01:00
baldurk
354dc784a4
Release both state object property interfaces
2024-10-03 16:59:49 +01:00
baldurk
b6c3707ee4
Cache AS builds and copy for initial states
2024-10-03 16:35:38 +01:00
baldurk
7bfa00db6a
Allow resource managers to mutate initial states
...
* This is useful for being able to cache data during apply, rather than during
serialise when we don't typically execute GPU work.
2024-10-03 16:35:09 +01:00
baldurk
d2ba9b793a
Serialise and recreate ASs via build data not API serialisation
2024-10-03 16:34:00 +01:00
baldurk
71329c617e
Duplicate and save parameters for AS builds
2024-10-03 16:33:19 +01:00
baldurk
f8aec0f890
Always report uncompacted AS size on D3D12
...
* Drivers can compact inconsistently so if we have a compaction that ends up
smaller during capture than replay we will end up with overlapping and invalid
AS locations on replay.
* We still allow compactions to happen in case there's a performance benefit,
the application will just not be able to exploit any memory savings.
2024-10-03 16:32:45 +01:00
baldurk
ae6bc1fd82
Enable RTP capture/replay feature on vulkan
2024-10-03 16:32:35 +01:00
baldurk
ca73392638
Step up through composite types when looking for file scope
2024-10-03 16:32:25 +01:00
baldurk
be3f2a65fb
Fix export lookup index being incorrect
2024-10-03 16:32:19 +01:00
baldurk
b49e2e607f
Add test of very short-lived RTV/DSV heaps
2024-10-03 16:32:09 +01:00
baldurk
2c1afc36a8
Fix crash if PSO is passed to CreateCommandList
2024-10-03 16:30:37 +01:00
Cam Mannett
a68c076341
Switch to GPU side query result replacement
2024-10-03 16:18:51 +01:00
Cam Mannett
5be2156bbe
Replace queried AS compaction sizes with full size
...
The spec does not mandate that the compaction size is the same between capture and replay, so we effectively disable it by always returning the full AS size when the compaction size is queried.
2024-10-03 16:18:51 +01:00
Cam Mannett
e08871d5c0
Vulkan AS rebuild-on-replay: Copy AS input buffers on build
...
When vkCmdBuildAccelerationStructuresKHR is called, the input buffers used for the build are copied into host-accessible memory, so when initial state serialisation is triggers it can be copied into the capture file.
To unify the behaviour of the different geometry types, there is only one readback buffer per AS, and in the case of triangle data it can contain the vertex, index, and transform data concatenated into a single contiguous block.
The buffer data along with build arguments are stored in a ref-counted VkAccelerationStructureInfo object held by the AS's VkResourceRecord. Once the info object is destroyed, then the copied buffer mem is also freed.
Serialisation of the initial state will follow in later patches.
Caveats:
* vkCmdBuildAccelerationStructuresIndirectKHR is not handled
* VkAccelerationStructureGeometryInstancesDataKHR::arrayOfPointers mode is not handled
2024-10-03 16:18:51 +01:00
baldurk
68a2866850
Add a couple of older Intel driver DLLs
2024-09-30 11:10:00 +01:00
baldurk
9795d8fbb0
Handle encoding DXIL bytecode with multiple functions
...
* After each function we need to reset the IDs of any function-local constants
since they may be referenced in other functions and need to be given new
function-local IDs for reference.
2024-09-30 11:08:30 +01:00
baldurk
4c003525b3
Add support for PSV data version 3
...
* This has a very disappointingly considered string in the header struct which
comes *before* the string table.
2024-09-30 11:07:53 +01:00
baldurk
c9714b9eaf
Bump version to v1.36
2024-09-27 18:01:00 +01:00