Commit Graph
4460 Commits
Author SHA1 Message Date
baldurk 090e4e5e9a Handle stale descriptors hanging around referencing re-used resources 2016-10-31 01:01:53 +01:00
baldurk 5890316f22 Implement DeviceContextStates from D3D11.1 as needed by D2D. Refs #402
* This should at least support the swapping of the current pipeline
  state but it probably won't support all the weird 'emulate different
  D3D versions' stuff.
2016-10-31 01:01:53 +01:00
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