Commit Graph

3456 Commits

Author SHA1 Message Date
baldurk f96be406d2 Remove ShutdownSwapchain - redundant vs ReleaseSwapchainResources 2016-07-10 18:10:06 +02:00
baldurk 60e11f1802 Implement checkerboard rendering on D3D12 2016-07-10 18:10:05 +02:00
baldurk 1a4ccf775c Release swapchain resources when shutting down swapchain 2016-07-10 18:10:05 +02:00
baldurk 8fd872525a Identify backbuffer textures properly and set to non-typeless format 2016-07-10 18:10:04 +02:00
baldurk 5420ab3256 Reset allocator after GPU sync to avoid excessive leaking 2016-07-10 18:10:04 +02:00
baldurk 0f6f06c5ec Add and release live resources properly during replay 2016-07-10 18:10:03 +02:00
baldurk f39b3e727e Set viewport and scissor rects properly when rendering 2016-07-10 18:10:03 +02:00
baldurk 7ccd3fe98f Don't cast command list/queue to TrackedResource - not inherited 2016-07-10 18:10:03 +02:00
baldurk b12dcbb869 Return texture and buffer information on replay, mark unimplemented fns 2016-07-10 18:10:02 +02:00
baldurk 4268d8f58f Remove structure size and redundant 32-bit length field from FetchBuffer 2016-07-10 18:10:02 +02:00
baldurk b9600e6f28 Fix refcounting around swapchain resizing on D3D12 2016-07-10 18:10:01 +02:00
baldurk 1f1467b06b Fix DXGI hooking for D3D11 2016-07-10 18:10:01 +02:00
baldurk 2fec42b3f2 Disable multisampling for now 2016-07-10 18:10:00 +02:00
baldurk 7d50aad4d7 Implement RenderTexture() (in a hacky way) 2016-07-10 18:10:00 +02:00
baldurk ad998a4e8b Keep a list of resources 2016-07-10 18:09:59 +02:00
baldurk a09ac13f36 Unwrap heaps for SetDescriptorHeaps 2016-07-10 18:09:58 +02:00
baldurk 758933bb73 Set most texture display properties before searching texture list 2016-07-10 18:09:58 +02:00
baldurk 57fe3e4fd5 Make internal command list etc wrapped, support multiple record lists 2016-07-10 18:09:57 +02:00
baldurk 14591e6a00 Move pixel debug pixel cbuffer to slot 1 so it doesn't overlap in D3D12 2016-07-10 18:09:57 +02:00
baldurk f975b7e92f Return frame record by reference 2016-07-10 18:09:56 +02:00
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