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