Commit Graph

1933 Commits

Author SHA1 Message Date
baldurk 98bfdd82db Fix in-application text rendering 2016-02-07 18:40:30 +01:00
baldurk 6a904ba032 Add a rather gross hack to get replay queues in advance and wrap later 2016-02-07 18:40:29 +01:00
baldurk 4db95cfe0c Add some missing wrap/unwraps 2016-02-07 18:40:28 +01:00
baldurk 949489b6b1 Don't dereference null pointer, use local device object 2016-02-07 18:40:28 +01:00
baldurk 802a5e4b0a Remove our own handling of dbg msg callbacks - come back to this later 2016-02-07 18:40:27 +01:00
baldurk 720a88f2f8 Serialise_vkCreateDevice needs to bootstrap with dummyDeviceTable 2016-02-07 18:40:26 +01:00
baldurk 58e0dfcdef Use VkInstance not ResourceId (problem with templated functions :() 2016-02-07 18:40:25 +01:00
baldurk d081efe65c GetLiveHandle / GetCurrentHandle should return wrapped object 2016-02-07 18:40:24 +01:00
baldurk 2559907c17 Resource tidy up isn't practical while writing as device is already dead 2016-02-07 18:40:23 +01:00
baldurk 2f8530b10b Tidy up destruction so all resources and records are deleted by shutdown
* This is assuming the app tidies up after itself - not sure if that's
  guaranteed or not.
2016-02-07 18:40:22 +01:00
baldurk 1abe5c2c0d Handle releasing a NULL resource 2016-02-07 18:40:22 +01:00
baldurk 9260bfd0be Don't double-delete now that ReleaseWrappedResource does it all 2016-02-07 18:40:21 +01:00
baldurk fe9f89cb47 Only mark resources as frame referenced when actually frame capturing 2016-02-07 18:40:20 +01:00
baldurk 9aacd2ed5b Release baked commands when destroying command buffer 2016-02-07 18:40:19 +01:00
baldurk c1eecb28f0 Don't serialise initial states for debug-only objects 2016-02-07 18:40:18 +01:00
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