Commit Graph

15088 Commits

Author SHA1 Message Date
baldurk b4c659eb9a Handle unrolling array-of-pointers for replay-time AS builds 2024-10-19 01:21:47 +01:00
baldurk ac1a680b47 Redeclare bitfields in structs when declaring types 2024-10-19 01:21:47 +01:00
baldurk c6c5702d74 Fix calculation of offsets with bitfields when aligning for pointers 2024-10-19 01:21:47 +01:00
baldurk f0aecfbfa3 Add a log message when vkconfig is detected and warned about 2024-10-19 01:21:47 +01:00
baldurk 3bd65816cf Add a demos test that uses RT with ASs 2024-10-19 01:21:47 +01:00
baldurk 60d2e30f43 Do indirect copy via EI to fetch array of instances layout 2024-10-19 01:21:47 +01:00
baldurk cd2a432cb6 Identify new-barrier ASB flag as equivalent to old-barrier ASB state 2024-10-19 01:21:47 +01:00
Jake Turner d7887ff1d9 DXIL Debugger support for switch instruction 2024-10-17 14:19:08 +01:00
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