Commit Graph

3424 Commits

Author SHA1 Message Date
baldurk fa600dbb34 Fix small typos processing queue/list chunks 2016-07-10 18:09:48 +02:00
baldurk 8a5ee99b42 Set up descriptor type properly when serialising in 2016-07-10 18:09:47 +02:00
baldurk 5a68bbf3a7 Don't serialise bytecode buffer if size is 0 - leave pointer as NULL 2016-07-10 18:09:47 +02:00
baldurk ba9321e796 Use macro for extracting swizzle components 2016-07-10 18:09:47 +02:00
baldurk 37811402b3 Create factory independently, rather than obtaining from device 2016-07-10 18:09:46 +02:00
baldurk a7f3ea725d Handle enabling debug layer while reading, when hooks aren't initialised 2016-07-10 18:09:46 +02:00
baldurk 621a2c984d Fix initial state serialisation/application
* Store return code from mapping resource so we don't think it's always
  failed.
* Use the correct unwrapped descriptor handle increment.
* Serialise directly into created upload buffer, and actually upload
  data.
* Do a manual CPU-side copy if destination buffer is in upload heap,
  otherwise ensure proper resource transition barriers happen
2016-07-10 18:09:45 +02:00
baldurk 5a4c22e291 Implement descriptor creation, post-serialise 2016-07-10 18:09:45 +02:00
baldurk ade23cc7a0 Minor formatting improvements 2016-07-10 18:09:44 +02:00
baldurk 5c963fc6a6 Add mostly stubbed D3D12 replay interface, and 2 core chunk replay loops 2016-07-10 18:09:44 +02:00
baldurk 89f40fb0df Fetch, serialise, and apply initial contents of buffer resources 2016-07-10 18:09:43 +02:00
baldurk e1fcde1d71 Track resource states for initial states, apply barriers while recording 2016-07-10 18:09:43 +02:00
baldurk 3a3c2abd8a Fixup RDCDriver out of date string-ify 2016-07-10 18:09:42 +02:00
baldurk 97e36a8def Track initial contents, with things treated as default dirty.
* For now, only descriptor heap initial contents are tracked.
2016-07-10 18:09:42 +02:00
baldurk 297fe80b79 Add remaining parent and dependency tracking to serialise frame 2016-07-10 18:09:41 +02:00
baldurk 4d394bcdce Serialise ID3D12Resource* as ResourceId properly 2016-07-10 18:09:41 +02:00
baldurk ae29c41e67 Add putting together an actual capture file. Give resources records 2016-07-10 18:09:40 +02:00
baldurk a7f6b62bcf Inline some functions that don't need to be separate 2016-07-10 18:09:40 +02:00
baldurk d177d5e3c8 Remove unused stuff from D3D12ResourceRecord 2016-07-10 18:09:40 +02:00
baldurk e043ab6cd6 Serialise the 'this' pointer for command list chunks 2016-07-10 18:09:39 +02:00
baldurk 723c6e065e Minor ToStr fixes 2016-07-10 18:09:39 +02:00
baldurk f56d3e7779 Add text log every second until overlay is implemented 2016-07-10 18:09:38 +02:00
baldurk 4160f3a776 Wrap virtual address and descriptor handles, serialise as heap ID + idx
* This lets us track descriptor contents too.
2016-07-10 18:09:38 +02:00
baldurk 9f7dd21f1b Wrap remaining interfaces for HelloWorldD3D12.
* We can disable the wrapping checking etc, everything from now on
  should be correctly wrapped.
2016-07-10 18:09:37 +02:00
baldurk a0983b64a4 Serialise the command list/queue functions HelloWorldD3D12 uses 2016-07-10 18:09:37 +02:00
baldurk f3216b38f5 Tweak string name of ResourceId to be all one word for easier searching 2016-07-10 18:09:36 +02:00
baldurk 983e8f57c0 Include min/max depth in string format of D3D11_VIEWPORT 2016-07-10 18:09:36 +02:00
baldurk 34755927b9 Add a packed descriptor structure for storing into 2016-07-10 18:09:35 +02:00
baldurk 11823a306d Intercept, serialise and wrap pipeline state creation 2016-07-10 18:09:35 +02:00
baldurk 3a65091b3c Wrap and intercept command lists and queues, and add a couple of unwraps
* At this point the HelloD3D12 sample runs with RenderDoc injected, and
  renders properly.
2016-07-10 18:09:34 +02:00
baldurk f8fa72c305 Add safety code for now, to handle unwrapping non-wrapped resources 2016-07-10 18:09:34 +02:00
baldurk d656511d0f Don't register callback while still running global constructors 2016-07-10 18:09:33 +02:00
baldurk c1f4a01b1b D3D12 object passed to CreateSwapChain and friends is a command queue 2016-07-10 18:09:33 +02:00
baldurk 6ce0ea37dc Set up pass-through implementations for D3D12 device/command list 2016-07-10 18:09:32 +02:00
baldurk b387f8e7f1 Add file for non-wrapped command list/queue functions 2016-07-10 18:09:32 +02:00
baldurk d980da3b60 Rename file for wrapped functions 2016-07-10 18:09:32 +02:00
baldurk fae1212ea0 Add support for IAT hooking imports via ordinal. Needed for D3D12 2016-07-10 18:09:31 +02:00
baldurk 72006dbfcd Make sure to cast to the correct return type.
* Some of these already worked via the first inherited interface being
  the right one, but it's better to be safe. When writing to void* the
  right vtable must be sitting in place.
2016-07-10 18:09:31 +02:00
baldurk e2cec61cb0 Add skeleton wrappers for the remaining D3D12 interfaces 2016-07-10 18:09:30 +02:00
baldurk 3407d4744e Rename two D3D11 classes to avoid link collisions with D3D12 classes 2016-07-10 18:09:30 +02:00
baldurk 66524a7330 Move common code into DXGI out of D3D11, to share with D3D12 2016-07-10 18:09:29 +02:00
baldurk b505cfaceb Add initial skeleton of D3D12 support
* This includes changes to DXGI to remove hard dependency on D3D11 code
  and support multiple D3D versions initialising through DXGI.
* Basically all of the D3D12 interception is unimplemented/stubbed out
  and only the ID3D12Device interface is present.
2016-07-10 18:09:20 +02:00
baldurk 9a3c3961dd Remove unused debug lock 2016-07-09 20:39:00 +02:00
baldurk 990210feda Fix a clang-format issue that snuck through 2016-07-05 12:13:26 +02:00
baldurk 5bdde0c74f Travis: Re-enable clang-format checks with restored LLVM apt repo 2016-07-05 12:02:51 +02:00
baldurk c7f2391d10 Just in case, handle histogram or minmaxtile pipelines being missing 2016-07-04 13:01:41 +02:00
baldurk 7df7f5fa3c Skip drawcalls that have numInstances == 0 from PostVS 2016-07-04 13:01:29 +02:00
baldurk 3e171f7f79 Remove top-most windows, we shouldn't have any (just above-rest-of) 2016-07-04 10:59:11 +02:00
baldurk 92d2fe0db9 Add temporary glslang warning fixes 2016-06-28 19:10:04 +02:00
baldurk 2b80776d5c Add -Wno-unknown-warning-option for older clang versions 2016-06-28 19:09:38 +02:00