baldurk
cd7c751e2c
While we only have one command list, sync after each execution
2016-07-10 18:09:55 +02:00
baldurk
b956568215
Can't wrap virtual addresses - they can be byte offsetted.
...
* We need to pass them through unwrapped and use a lookup table to get
the resource's ID from them when necessary
2016-07-10 18:09:55 +02:00
baldurk
84e5bf3a7e
Use flip model for swapchain, render to intermediate target then copy
2016-07-10 18:09:54 +02:00
baldurk
9d9c90456b
Only create debug manager once
2016-07-10 18:09:53 +02:00
baldurk
6d2343cb29
Register D3D device DXGI callback on replay too
2016-07-10 18:09:53 +02:00
baldurk
8f1bad6de4
Fix typo - don't try to use wrong device pointer
2016-07-10 18:09:52 +02:00
baldurk
9cd6b1ead2
Close list immediately after creation, so it can always be reset on use
2016-07-10 18:09:52 +02:00
baldurk
15aaf56781
Create fake backbuffer texture
2016-07-10 18:09:51 +02:00
baldurk
54c45355f7
Set up serialise user data and replay device pointers properly
2016-07-10 18:09:50 +02:00
baldurk
295a315840
Only get command list IDs when writing
2016-07-10 18:09:50 +02:00
baldurk
925445c8b0
Don't reset newly created command lists (it's not valid)
2016-07-10 18:09:49 +02:00
baldurk
48e52c12f7
Mark signalled fences as referenced
2016-07-10 18:09:49 +02:00
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