Commit Graph

1906 Commits

Author SHA1 Message Date
baldurk bad01d25fb Partial progress on wrapping/unwrapping objects correctly
* Still missing:
  - Replay/analysis objects aren't wrapped on creation as they should be
  - Wrappers aren't registered, so a handful of cases (like fetching
    creation info or gathering pipeline state) that need to go real ->
    wrapped (for the ID) can't at the moment.
  - Doesn't yet create temporary creation info structures etc, to unwrap
    the relevant members.
2016-02-07 18:40:07 +01:00
baldurk 250b59e07c Move compile asserts out, as g++ can't use AllocByteSize in class def 2016-02-07 18:40:06 +01:00
baldurk 5bb681033d Add a handful of unwrapping up to instance/physical device point 2016-02-07 18:40:05 +01:00
baldurk 7afd99aff5 Use instance tables fetch instead of ObjDisp in vkCreateDevice/Instance 2016-02-07 18:40:04 +01:00
baldurk a6787430e8 Set up dispatch tables on creating wrapped resource, use ObjDisp 2016-02-07 18:40:03 +01:00
baldurk 93ad35e98a Make WrappedVulkan compile with wrapped resources 2016-02-07 18:40:02 +01:00
baldurk baba2a898b Make GetID(WrappedVkRes *) public since it's quite useful 2016-02-07 18:40:02 +01:00
baldurk 3a85a5f75b Add helper function to quickly get real from right place and cast 2016-02-07 18:40:01 +01:00
baldurk ba2473f27a Return new id from WrapResource 2016-02-07 18:40:00 +01:00
baldurk 302060bea6 ToStr function for VkResourceType 2016-02-07 18:39:59 +01:00
baldurk 4f744645e8 Add handy ObjDisp() function for dispatching via cached table 2016-02-07 18:39:58 +01:00
baldurk bd3f1c3002 Split dispatchable and non-dispatchable types up, to preserve tables 2016-02-07 18:39:58 +01:00
baldurk 9ab07a0ebb Add utility function for wrapping new resources 2016-02-07 18:39:57 +01:00
baldurk 55073df153 Refactor context record/id 2016-02-07 18:39:56 +01:00
baldurk 9b8431066a Add a couple of helpful utility functions for resources 2016-02-07 18:39:55 +01:00
baldurk 52c07cb789 Remove VkResource, switch to WrappedVkRes*, update all but vk_core.cpp 2016-02-07 18:39:54 +01:00
baldurk 6fa9007c2f Adjust pool counts/sizes 2016-02-07 18:39:53 +01:00
baldurk 2bbfa66d72 Add pool identification utility function 2016-02-07 18:39:53 +01:00
baldurk 585eba7c84 Add utility functions to unwrap, access ID or get record 2016-02-07 18:39:52 +01:00
baldurk e9342a32e7 Add VkWrappedRes struct with wrapping allocated pools 2016-02-07 18:39:51 +01:00
baldurk c5b3cf5849 Recompile text-rendering shaders to be LunarG sample driver friendly 2016-02-07 18:39:50 +01:00
baldurk eaf31123f7 Remove old code 2016-02-07 18:39:49 +01:00
baldurk 442386b84a Add text-rendering support for in-application renderdoc overlay 2016-02-07 18:39:48 +01:00
baldurk ad185a4042 A couple of runtime fixes, and create renderpass & framebuffers in-app 2016-02-07 18:39:47 +01:00
baldurk 332a281291 spin off 'debug data' into separate class so it can be used in-app 2016-02-07 18:39:47 +01:00
baldurk 2a043d6125 Implement getting backbuffer screenshot on capture 2016-02-07 18:39:46 +01:00
baldurk 088c3e1c4c Default to first swap image on replay output windows 2016-02-07 18:39:45 +01:00
baldurk 46d1d9c462 First pass at cleaning up resources. Remaining leak in mem initial state 2016-02-07 18:39:44 +01:00
baldurk 75a7a496f4 Release debug data (and wrap it up in its own struct) 2016-02-07 18:39:43 +01:00
baldurk 25cd48401b Change replay ID resource ID offset to decimal instead of hex 2016-02-07 18:39:42 +01:00
baldurk 429a93b4a0 Demote a VKTODO from HIGH to MED 2016-02-07 18:39:41 +01:00
baldurk 5a0e900a61 Fetch or add a queue family index that matches what we need 2016-02-07 18:39:41 +01:00
baldurk 3addb43f06 Warn about different API version, but proceed and use RenderDoc's 2016-02-07 18:39:40 +01:00
baldurk b14b149394 Dynamically allocate physical device array 2016-02-07 18:39:39 +01:00
baldurk 6d4cadf697 Remove VKTODOs about pNext/sType, it's handled in struct serialises 2016-02-07 18:39:38 +01:00
baldurk 1c0c09f4b9 Make sure to call vkResetCommandBuffer before re-begin'ing 2016-02-07 18:39:37 +01:00
baldurk e5e8fa29f5 Fix problem that might go away with resource record shutdown order 2016-02-07 18:39:36 +01:00
baldurk 3b3053369c Add frame references for current descriptor set bindings on queue submit
* We rely on the API-enforced lifetimes to be followed by the user,
  which means all resources they care about (note, might be some stale
  bindings) will be alive at queue submission time so we can just ref
  them all.
2016-02-07 18:39:35 +01:00
baldurk a675735499 Correctly query for backbuffer format and present mode from driver 2016-02-07 18:39:35 +01:00
baldurk 96e19cc4e9 List out descriptor set bindings and contents in vulkan pipeline state 2016-02-07 18:39:34 +01:00
baldurk 426aeb5a5e Keep track of current descriptor set bindings on replay 2016-02-07 18:39:33 +01:00
baldurk 26f773684a Track enough while READING to set drawcall topology/index width 2016-02-07 18:39:32 +01:00
baldurk 2eb87b804f Giant hack to set up 'fake' device/instance dispatch tables, for replay 2016-02-07 18:39:31 +01:00
baldurk 9b0b6ef3b6 Get compiling on win32 (hacks, not final code). 2016-02-07 18:39:30 +01:00
GregF 5c8df903ef Revert "Use layer specific dispatch table maps"
This reverts commit b445ecdaa2a7ae26b468439dbb0b79ad5f1fb78f.
2016-02-07 18:39:29 +01:00
GregF a8dfd36525 Use layer specific dispatch table maps 2016-02-07 18:39:28 +01:00
GregF e3f4a122fc Fixes to enable capture of cube with layer mechanism. 2016-02-07 18:39:28 +01:00
GregF 872a312af0 Use Vulkan layer to generate trace file 2016-02-07 18:39:27 +01:00
baldurk 45d7b488d4 Typo fix - set handle to handle 2016-02-07 18:39:26 +01:00
baldurk 0bc36096f8 Track descriptor set updates and serialise out as initial states 2016-02-07 18:39:25 +01:00