baldurk
212467a9c5
Inherit from the correct interface to be implemented
...
* Without this, a cast from WrappedID3D11DeviceContext to
ID3D11DeviceContext3 will not properly adjust the vtables so the
returned pointer will be invalid.
2016-10-31 01:01:53 +01:00
baldurk
a5e6158996
Forward QueryInterface call for ID3D11InfoQueue from context to device
2016-10-31 01:01:53 +01:00
baldurk
4dc75a69fe
Return a dummy ID3D10Multithreaded to stop D2D from whining. Refs #402
2016-10-31 01:01:53 +01:00
baldurk
8852b5f739
Track resources to flush in deferring dynamic descriptor updates
...
* During the frame we don't update our internal descriptor tracking, we
just record the updates on the CPU timeline.
* However, it's possible that one of those copies or writes references a
resource that is persistently mapped, so we need to know about that so
we can flush it at the next execute.
2016-10-31 01:01:53 +01:00
baldurk
21b4f94379
Don't try and hook into child processes that failed to create
2016-10-31 01:01:53 +01:00
baldurk
29388362a3
Make sure to delete records when resources are destroyed.
...
* If we're capturing, the frame references will keep the resource alive
and the application has to at least keep resources alive until after
GPU execution is finished.
2016-10-31 01:01:53 +01:00
baldurk
7903c78f6c
Unmap all current maps when a resource is deleted
2016-10-31 01:01:53 +01:00
baldurk
f46cf932d2
Implement D3D12.1 - ID3D12Device1 and pipeline library
2016-10-31 01:01:53 +01:00
Dominik Witczak
aaba987953
Fix for glBindBuffersRange() impl.
2016-10-30 20:51:56 +01:00
baldurk
b8cee9f530
Add missing break statements, thanks to report from @RCalocaO!
2016-10-29 21:28:27 +02:00
baldurk
6b5a2d4b66
Fix OwnerView not propagating to child nodes. Thanks @RCalocaO!
2016-10-29 21:25:55 +02:00
baldurk
23da9ac149
Add a pop-up tooltip over event names that are truncated
2016-10-28 21:21:05 +02:00
baldurk
1ceb9ee6e7
Don't crash if no RTVs are set with SingleHandleRT true
2016-10-28 17:42:11 +02:00
baldurk
420d653085
Release temporary SRVs created during copy MS <-> Array. Refs #406
2016-10-28 17:41:48 +02:00
baldurk
cdbcc7f301
Print a message when running a process
2016-10-27 22:17:42 +02:00
baldurk
385b719883
Make warning on inject screen much more obvious
2016-10-27 21:22:46 +02:00
baldurk
886d49fd2a
Don't crash if we try to refresh a non-host node, just skip it
2016-10-27 20:35:52 +02:00
baldurk
b36b120638
Don't store bound descriptors in a set, just a vector with duplicates
2016-10-27 19:35:46 +02:00
baldurk
37e56e91b0
Only emit debug text in non-RELEASE
2016-10-27 19:35:45 +02:00
baldurk
f7c155acd3
Unwrap presentation queues passed to ResizeBuffers1
2016-10-27 19:35:44 +02:00
baldurk
3c222af4e2
Make sure to frame-reference the contents of descriptor copy sources
2016-10-27 19:35:43 +02:00
baldurk
b796669909
Print size of each individual command list, not total size
2016-10-27 19:35:42 +02:00
baldurk
58ecabc7c4
Make sure persistent map check includes resources in bound descriptors
2016-10-27 16:23:09 +02:00
baldurk
95f955a5bb
Put whole of ExecuteCommandLists processing in cap transition lock
...
* This is needed because processing of flushing persistent maps and
using shadow memory needs to happen before it's deallocated at the end
of the frame.
2016-10-27 15:43:39 +02:00
baldurk
ff547fa24f
Only allocate DSVs for output windows with depth.
2016-10-27 15:42:37 +02:00
baldurk
3357898855
Unwrap resource to discard on replay
2016-10-27 14:01:16 +02:00
baldurk
07c9b3697b
Check for truncated reads when decompressing
2016-10-27 12:40:19 +02:00
baldurk
edcce279d2
Don't write debug text string all in one fwrite call
2016-10-27 12:39:47 +02:00
baldurk
c49496bc16
Don't overwrite sampler types during writing
2016-10-27 12:39:17 +02:00
baldurk
88939d1f21
Only add wrapped resources to list on replay (which is single threaded)
2016-10-27 11:35:03 +02:00
baldurk
0832bff675
Use command queue that created a swapchain for writing to backbuffers
2016-10-27 11:34:17 +02:00
baldurk
909d82cc1e
Disable barrier logging/assertions by default
2016-10-26 23:14:17 +02:00
baldurk
f26876adf3
Only ask for virtual address of buffers
2016-10-26 23:14:17 +02:00
baldurk
e1c0400e40
Lock around access to GPUAddressRange vector
2016-10-26 23:14:16 +02:00
baldurk
a396713f3c
Increase size of initial pipeline state pool
2016-10-26 23:14:16 +02:00
baldurk
51ba0000ed
Increase MAX_NUM_BACKBUFFERS
2016-10-26 23:14:15 +02:00
baldurk
ab9ada685a
Add basic serialisation of bundle execution, without stepping-in support
2016-10-26 23:14:14 +02:00
baldurk
dd0a68c9c9
Sync on all queue fences to ensure work is done before shutdown
2016-10-26 23:14:14 +02:00
baldurk
a69012e50d
Signal dummy fences on all queues to keep debug layers happy
2016-10-26 23:14:13 +02:00
baldurk
2f2da067b0
Account for range start when reading from map ptr to serialise map data
2016-10-26 23:14:12 +02:00
baldurk
939f1102e3
Add SINGLE_FLUSH_VALIDATE single execution of lists and syncing
2016-10-26 23:14:12 +02:00
baldurk
95c2863ab2
When GPU syncing, check that it's successful & wait long enough for TDR
...
* This means if we're trying to track a TDR by SINGLE_FLUSH_VALIDATE we
will definitely catch it failing here.
2016-10-26 23:14:11 +02:00
baldurk
451203187d
Handle nested Map/Unmap calls by refcounting
2016-10-26 23:14:10 +02:00
baldurk
e8e7ad711a
Don't set stale table root signature entries for non-current heaps
...
* The problem is we need to keep current state for both graphics and
compute because while setting a root signature invalidates bindings,
setting compute doesn't invalidate graphics and vice-versa.
* However it can be invalid to try and re-apply in one go if we're only
drawing and not dispatching and some of the compute elements are
invalid.
* Rather than try to figure out which one *should* be valid, instead we
just skip invalid binds that don't have matching heaps.
2016-10-26 23:14:10 +02:00
baldurk
447b64fd14
Wrap DXGI 1.5 passthrough, to ensure the wrapping ecosystem isn't broken
2016-10-26 17:10:05 +02:00
baldurk
2c7791c7bd
Don't wrap each DXGI interface individually, wrap most derived
...
* This lets naughty applications downcast e.g. from an IDXGIAdapter to a
IDXGIAdapter1 without QueryInterfacing (I'm looking at you, ROTTR).
2016-10-26 13:20:07 +02:00
baldurk
0178ea6bb9
Handle setting empty RTs list even if RTsSingleHandle.. is set
2016-10-26 13:17:49 +02:00
baldurk
8acd5ab27d
Capture and replay commands executed on multiple queues
2016-10-26 10:48:03 +02:00
baldurk
135ec6858d
D3D12 guarantees that queues are thread-safe
2016-10-26 09:29:43 +02:00
baldurk
8fbf7ede1b
Make a cracked allocator per real allocator, for threaded recording
...
* Threaded recording means the recording chunks are all interleaved in
the log so we may be cracking multiple command lists at the same time
and so need multiple allocators. Since the original capture obeyed the
rule of only recording to one list from an allocator at once, making a
cracked allocator for each also obeys that rule.
2016-10-26 08:56:41 +02:00