Commit Graph

15328 Commits

Author SHA1 Message Date
baldurk 3366b25f0d Add appropriate barriers for indirect RT arguments during patching 2024-12-05 13:31:23 +00:00
baldurk dcf9ef00dc Fix missing flag to indicate that indirect count buffer is unused 2024-12-05 13:31:23 +00:00
baldurk e2f67eb9f6 Ignore a couple of DXBC chunks without processing or warning 2024-12-05 13:31:23 +00:00
baldurk a26e599c02 Rebase addresses to current form in indirect ray dispatches 2024-12-05 13:31:23 +00:00
baldurk 9d698acbf4 Reset lod bias on GL when rendering textures internally 2024-12-05 13:31:23 +00:00
baldurk 4bc41a6296 Fix nv aftermath include order 2024-12-05 13:31:23 +00:00
baldurk 9bc648cf3b Fix fetching DRED contexts
* Though these are broken as they are not properly processing BeginEvent strings
  which are not packed/encoded
2024-12-05 13:31:23 +00:00
baldurk 72fffe4cf2 Run patching for indirect RT executes while auditing, but don't execute 2024-12-05 13:31:23 +00:00
baldurk bd286fce81 Sort resources with identical start VAs by size
* This helps us when looking up a resource by VA to identify the largest one,
  though does not handle all cases :(.
2024-12-05 13:31:22 +00:00
Jake Turner fc31fb377e DXIL Debugger support for DXOp::CalculateLOD 2024-12-04 15:19:56 +00:00
Jake Turner c2f752aa29 DXIL Debugger support for CreateHandleFromHeap 2024-12-04 14:55:34 +00:00
Jake Turner 11870b184a ShaderViewer support for ShaderDirectAccess shader resources
i.e. D3D12 SM6.6 HLSL Dynamic resources which index directly into the resource/sampler heap and not via shader bindings.
2024-12-04 13:40:17 +00:00
Jake Turner 2bd74fea8e DXIL Debugger copy the type data from the Phi argument as well as values
To support the case when the Phi node argument is storing the result from a Handle operation i.e. CBufferLoad, Sample
2024-12-04 09:51:50 +00:00
Jake Turner 81816cc2f9 DXIL D3D12APIWrapper added GetShaderDirectAccess()
Creates ShaderDirectAccess structure from a DescriptorCategory and DXDebug::BindingSlot
2024-12-04 09:51:50 +00:00
Jake Turner 2d8930d88e Added D3D12APIWrapper::GetResourceReferenceInfo()
Gets the resource details for a direct heap access binding
2024-12-04 09:51:49 +00:00
Jake Turner 8d24385f15 D3D12ShaderDebug support for direct heap access bindings
Added:
D3D12Descriptor FindDescriptor(WrappedID3D12Device *device, const DXDebug::HeapDescriptorType heapType, uint32_t descriptorIndex);
2024-12-04 09:51:49 +00:00
Jake Turner 8e69038ebc Extend DXDebug::BindingSlot to support direct access heap bindings
Add new members
HeapDescriptorType heapType;
uint32_t heapIndex;
2024-12-04 09:51:49 +00:00
Jake Turner 140c681e66 DXIL Debugger new struct ResourceReferencceInfo for resource details
Replaces previous use of DXIL::ResourceReference* which is only available for direct bindings
2024-12-04 08:37:21 +00:00
Jake Turner dbe18fc7fe Added ShaderDirectAccess helper struct and ShaderVariable set/get
ShaderDirectAccess is used to reference resources which are accessed directly from the Shader (not via a direct binding). Shader resource references using direct binding are stored in ShaderBindIndex.
2024-12-04 08:37:21 +00:00
baldurk 61a559a944 Expand cases where we don't hook an already loaded module
* Some nv libraries like to do this a *lot* for nvapi.dll.
2024-12-03 17:11:21 +00:00
baldurk d37b0ee00b Fix issue with iterating actions via previous/next in python
* We keep parent references when returning child objects via reference/python
  object wrappers rather than copying. But when iterating a linked list like the
  actions this can produce an incredibly long parent chain and then on
  destruction we can stack overflow if the chain is long enough.
2024-12-03 15:01:58 +00:00
baldurk 8d04479d20 Add additional check on index buffer values being out of bounds 2024-12-03 15:01:58 +00:00
Jake Turner 3de21cd16f DXIL Debugger sort unimplemented DXOp's into three lists
1. Likely to implement when required
2. Don't know if needs to be implemented
3. No plans to implement
2024-12-03 06:20:36 +00:00
Jake Turner dc1a7c57db Update DXIL Global Shader Flags to latest version SM6.8
For the future display any unknown global shader flags as hex value
Make sure the DXIL debugger line numbers match the disassembly output if there are unknown global shader flags
2024-12-03 06:20:36 +00:00
Jake Turner 8b3a5ee826 DXIL Debugger helper methods to clear/set/get AnnotatedHandle property 2024-12-03 05:47:38 +00:00
Jake Turner 9abacbf6ea DXIL Debugger removed unused method DebugAPIWrapper::IsResourceBound()
Also removed associated private helper methods IsUAVBound(), IsSRVBound()
2024-12-03 05:45:50 +00:00
Jake Turner 4532b888ed Add SM 6.2 and StructuredBuffer<int16_t> to D3D12 Shader Debug Zoo test 2024-12-03 05:21:41 +00:00
Jake Turner 56fffb5dc2 D3D12 Tests add uint32_t compileOptions to Compile()
Current options are:
SkipOptimie : the default
Enable16BitTypes
2024-12-03 05:21:41 +00:00
baldurk 6d3e08a285 Don't check for transient file's existence 2024-12-02 13:57:41 +00:00
baldurk 06bc5818c2 32-bit compile fix 2024-12-02 13:54:52 +00:00
baldurk 537a19f639 Verify callable shaders (assuming anyone ever uses them) 2024-12-02 13:54:45 +00:00
baldurk 8ed3ff4db3 Increase D3D12 text rendering ring size
* The RT overlay can use a lot of lines per frame
2024-12-02 13:39:28 +00:00
baldurk 9d3d253642 Don't encode PNG extended thumbnail by default 2024-12-02 13:39:28 +00:00
baldurk 9af1de5d35 Avoid O(N^2) cascade removing many AS builds at once 2024-12-02 13:39:28 +00:00
baldurk 4fa0532719 Use transient self-deleting file handles for AS cache
* This avoids the problem where an application exits so fast on shutdown that we
  don't have time to execute any cleanup functions to delete cached ASs.
* To avoid opening a huge number of file handles we also collate cached ASs into
  batched files
2024-12-02 13:39:28 +00:00
baldurk 097ac429f6 Don't process separate debug info during capture 2024-12-02 13:39:28 +00:00
baldurk e3a3a502bc Serialise AS initial contents before all others
* This will be important for replay-time reallocation, so their VAs can be
  remapped before any serialised descriptor heaps look them up.
2024-12-02 13:39:28 +00:00
baldurk aa242a5be7 Do disk caching on background thread 2024-12-02 13:39:28 +00:00
baldurk 514e0b0d78 Reduce time searching for suballocs 2024-12-02 13:39:28 +00:00
baldurk 1f2855a4ea Stringise D3D12_FEATURE 2024-12-02 13:39:28 +00:00
baldurk 6a75b73e1f Don't sync for each capture text overlay render 2024-12-02 13:39:28 +00:00
baldurk a19b7ea3c4 Use more efficient storage for forced references on D3D12 2024-12-02 13:39:27 +00:00
baldurk f6f4bc9558 Add stat tracking of GPU overhead during capture 2024-12-02 13:39:27 +00:00
baldurk 9bff5fe29f Disallow compaction entirely
* Although we intercept size queries to return the current size instead of
  compacted size, this size can still leak out if a compacted AS is used as the
  source of a subsequent update-build. Also in theory an application could just
  compact then query the current size (possibly for defrag? though you'd expect
  that size to be cached on the CPU from the original compact).
2024-12-02 13:39:27 +00:00
baldurk 3c3ff89e06 When auditing verify that known AS sizes are not exceeded 2024-12-02 13:39:27 +00:00
baldurk 671cca2a98 Remove unused code 2024-12-02 13:39:27 +00:00
baldurk a77c8fc13b Rename and group RT debug options 2024-12-02 13:39:27 +00:00
baldurk 250c448ebc Add verification of AS init contents 2024-12-02 13:39:27 +00:00
baldurk 7e3bbcc7a3 Add verbose logging for audit mode 2024-12-02 13:39:27 +00:00
baldurk 081345fccf Add verification of TLAS build inputs 2024-12-02 13:39:27 +00:00