Commit Graph

15063 Commits

Author SHA1 Message Date
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
baldurk 8a394019fd Fix installer typos v1.35 2024-09-27 11:57:42 +01:00
baldurk a342fcbe30 Add dxcompiler.dll to installer 2024-09-27 10:46:25 +01:00
James Sumihiro aaf64f1edf Fix uninitialized reftype during image state merge
The reftype of a merged subresource state is now initialized with the reftype of the original subresource state

This resolves an issue that could occur if image states in a secondary command buffer were merged into a primary for the first time, where the resulting merged image state would have an uninitialized reftype
2024-09-26 10:18:48 +01:00
baldurk f0389a6ccc Fix crash if opening D3D11 cbuffer view with no shader bound 2024-09-24 14:14:13 +01:00
Jake Turner 11e8039622 DXIL Debugger find the entry point in GetLineInfo
Get entry point from meta data if the entry point is empty
2024-09-24 11:06:00 +01:00
baldurk 8b23157086 Check extension/version capabilities for sampler descriptors too on GLES 2024-09-23 14:04:47 +01:00
baldurk ce6b999995 Fix typo in warning message 2024-09-23 14:04:46 +01:00
Jake Turner 66a43b3d45 Moved var_dispatch_helpers.h to replay/common folder
To enable sharing ShaderVariable helpers for the SPIRV and DXIL Shader Debuggers
2024-09-20 17:44:41 +01:00
Jake Turner 982f464eee Do not call end_section when a shader debug pixel comparison test fails 2024-09-20 17:44:25 +01:00
baldurk 5a9c707bef Drop use of dxil.dll entirely, prefer loading from plugin
* We already hash any unhashed containers so we don't need dxil.dll for anything
2024-09-20 14:18:09 +01:00
baldurk 8b096de227 Check for feature availability when fetching GL descriptors 2024-09-20 13:35:43 +01:00
baldurk 6388289921 Fix crash if cbuffer creation fails 2024-09-20 13:30:33 +01:00
baldurk 0bf89f95c0 Reset compute state when CB is reset 2024-09-20 13:30:33 +01:00
baldurk a882efef66 Rename RT manager to be less of a mouthful 2024-09-20 13:30:33 +01:00
baldurk 40d0b8088c Properly wait on jobs for setting stack size 2024-09-20 13:30:32 +01:00
baldurk 70cadc8f81 Don't rely on device sharing when not singleton device 2024-09-20 13:30:32 +01:00
baldurk 0cea7aae41 Add warning to users when vkconfig is detected
* This causes quite a few crashes on startup during Vulkan initialisation.
2024-09-20 13:30:32 +01:00