Commit Graph

1918 Commits

Author SHA1 Message Date
baldurk 4af3d1c00c Unwrap swapchain present info structure 2016-02-07 18:40:17 +01:00
baldurk ae0aef85c2 Fix small bugs 2016-02-07 18:40:16 +01:00
baldurk 7ba885fddd Use parent object when wrapping to fetch dispatch table
* The created object's dispatch table pointer is only valid after it
  gets back to the loader - after our layer has run. So at create time
  it's invalid, we just look to the parent which has the same value.
2016-02-07 18:40:15 +01:00
baldurk f3da5478fc Copy and unwrap any structures that contain object handles 2016-02-07 18:40:15 +01:00
baldurk 4254f54d92 Fix some more wrapping/unwrapping issues 2016-02-07 18:40:14 +01:00
GregF 4816bcfa7b use layer specific dispatch table maps 2016-02-07 18:40:13 +01:00
baldurk bc2dca08ba Fix linux compile issues with some temporaries 2016-02-07 18:40:12 +01:00
baldurk a00688a86a Add a little utility function so that code can get IDs from real objects 2016-02-07 18:40:11 +01:00
baldurk a6626ab31b Debug and replay properly wrapping and unwrapping everything 2016-02-07 18:40:10 +01:00
baldurk 3522ce25d5 Put 'real' handle into tiny struct similar to one in vulkan.h
* This lets us have a more type-safe 'generic vulkan handle' struct, and
  we can give that to the resource manager when specifying what type
  we're wrapping.
2016-02-07 18:40:09 +01:00
baldurk 9dfcf7826b Fix 32-bit build 2016-02-07 18:40:08 +01:00
baldurk 725847e636 Move WrapResource in-place util function to manager
* This way code that wants to wrap resources (ie. replay/debug code)
  doesn't have to depend on the driver.
2016-02-07 18:40:08 +01:00
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