Charles Giessen
4a30810a87
Added DelayedDeletionQueue and SwapchainManager to abstract presentation
...
The DelayedDeletionQueue is a general utility for queueing up things to delete at a future time.
This simplifies swapchain recreation by making the deletion of in-use objects to be done later when they are no longer in use.
The SwapchainManager handles all aspects of a swapchain:
* Creation - Pass a SwapchainBuilder to specify how the swapchain should be created.
* Recreation - Recreates the swapchain without introducing a pipeline stall through the use of an internal DelayedDeletionQueue.
* Semaphores - Handles setting up the semaphores for acquiring a swapchain image, submitting work to draw to it, then presenting it.
* Fences - Owns the fences associated with the command buffer submissions which write to the swapchain image.
Optionally, the SwapchainManager can also provide command buffers in which to record with for ease of use in simple situations.
There is a ImagelessFramebufferBuilder to simplify creating imageless framebuffers into a few lines of code. Nothing special,
but is a nice thing to have
Also in these changes
Fixed issue with image usage flags inheriting the wrong flags and causing validation message spam.
2021-06-29 23:57:25 -06:00
Cody Goodson
c05a277572
Added noexcept and NDEBUG guard.
2021-06-16 10:52:07 -06:00
Cody Goodson
c66158e87c
Small cleanup.
...
- Replaced GenericFeaturesPNextNode's set function with a template constructor.
- Moved validation asserts for extension feature structs into source.
- Dispatch table now generates in UTF-8.
2021-06-16 10:52:07 -06:00
Charles Giessen
867376d01e
Move debug callback into header and allow adding user pointer
2021-06-14 15:17:37 -07:00
Charles Giessen
e511dfdbf9
test: Add 1.0 test for feature config selection
2021-06-10 10:06:14 -07:00
Charles Giessen
244a44da51
Guard vkGetPhysicalDeviceFeatures2 behind instance version
...
Also make it so that instance extensions are queried in the instance only.
2021-06-10 10:06:14 -07:00
Charles Giessen
f422497cca
Remove stray semicolon
2021-06-10 10:06:14 -07:00
Charles Giessen
05683f6b6b
Call KHR version of get phys dev properties if necessary
...
Previously, vk-bootstrap didn't support calling vkGetPhyicalDeviceFeaturesKHR
on devices which support the extension. This makes vk-bootstrap more amenable
to 1.0 only hardware, like rasberry pi's.
2021-06-10 10:06:14 -07:00
Cody Goodson
f955777c8a
Cleanup
2021-06-08 14:03:47 -07:00
Cody Goodson
f49032f804
Internal table change.
...
- Internal tables are now populated through internal vkGetDeviceProcAddr rather than through passed dispatch table
- Device now has its own internal table as well.
- Cleaned up get_proc_addr functions and removed internal functions that are now held in a types internal tables.
2021-06-08 14:03:47 -07:00
Cody Goodson
7bd3fcae56
Make const.
2021-06-08 14:03:47 -07:00
Cody Goodson
0f307e06e8
Removed commented out lines.
2021-06-08 14:03:47 -07:00
Cody Goodson
f5d3061043
Added optional dispatch table usage to swapchain.
2021-06-08 14:03:47 -07:00
Cody Goodson
87a63e942c
Fixed a bug where user provided vkGetInstanceProcAddr pfn's were being ignored. Cleaned up un-needed locks.
2021-06-06 21:22:50 -07:00
Charles Giessen
b3fdd554b4
Add vkb::destroy_surface
helper function
2021-06-06 13:25:08 -07:00
Cody Goodson
10d88ae840
Reverted back to dispatch table creation function in device type
...
- Added noexcept modifier to proxys
- Change name of header to VkBoostrapDispatch.h
2021-06-06 12:49:23 -07:00
Cody Goodson
2c0fe72ad9
Shorthand populated init
2021-06-06 12:49:23 -07:00
Cody Goodson
b963aeb94b
Added populated function to gen and exception handling to vk.xml fetch.
2021-06-06 12:49:23 -07:00
Cody Goodson
6eefc9c7e2
Added dependency prompt/exception handling.
2021-06-06 12:49:23 -07:00
Cody Goodson
a61e221d59
Trimmed branching in script and modified usage in core lib.
2021-06-06 12:49:23 -07:00
Cody Goodson
dd1df1396c
Forgot to remove const ref
2021-06-06 12:49:23 -07:00
Cody Goodson
45419be295
Removed old unused vars
2021-06-06 12:49:23 -07:00
Cody Goodson
63d252e828
Rework complete.
2021-06-06 12:49:23 -07:00
Cody Goodson
ae402c6a19
Function loading is working again and now handles collections of requirements. Only header gen is left.
2021-06-06 12:49:23 -07:00
Cody Goodson
88358fb9cf
In progress rework
2021-06-06 12:49:23 -07:00
Cody Goodson
cd0959f37e
Make proxys const.
2021-06-06 12:49:23 -07:00
Cody Goodson
85b17b40e7
Removed unneeded private.
2021-06-06 12:49:23 -07:00
Cody Goodson
03258bfab2
Simplified parsing text modifiers in proxy generation and fixed extension function proxys not being generated.
2021-06-06 12:49:23 -07:00
Cody Goodson
f091c5a4a4
Forgot to flag as const
2021-06-06 12:49:23 -07:00
Cody Goodson
5c5b8dad34
Cleanup + license/info.
2021-06-06 12:49:23 -07:00
Cody Goodson
8dc3c2aeee
Proxys added to autogen. Updated test.
2021-06-06 12:49:23 -07:00
Cody Goodson
2445eb0b28
Loading looks good, but requires passing Device still;
2021-06-06 12:49:23 -07:00
Cody Goodson
d8c6fe42b8
Handling extensions + incorporating DispatchTable into main src
...
- which means rewriting almost the entire script..
2021-06-06 12:49:23 -07:00
Cody Goodson
a0a0738299
Header generation is working
...
- No loading yet
2021-06-06 12:49:23 -07:00
Cody Goodson
b06763b187
In progress dispatch gen
2021-06-06 12:49:23 -07:00
Yves BOYAdjian
a014a5a030
Right test in SystemInfo constructor
2021-06-04 13:28:35 -06:00
Charles Giessen
bae94d9f47
example: Load vkDestroySurfaceKHR correctly.
...
vkDestroySurfaceKHR needs to be loaded with vkGetInstanceProcAddr, not vkGetDeviceProcAddr.
2021-05-21 14:04:28 -06:00
Charles Giessen
ab60522c9b
Format internal queue selection functions
2021-05-21 14:04:28 -06:00
Charles Giessen
70265d8b29
Assert in SwapchainBuilder on queue getting failure
...
This resolves the TODO about what to do if the queues couldn't be found.
2021-05-21 14:04:28 -06:00
Charles Giessen
84ba7a79ee
Document constructors for SwapchainBuilder
...
Specifically done for the 3rd constructor which will query the necessary
queues when they are not provided
2021-05-21 14:04:28 -06:00
Charles Giessen
045b1e7b0f
Add queue selection tests and refactor internal code a bit
2021-05-21 14:04:28 -06:00
Lesley Lai
36eff8fa42
Use CMake namespaced target in CMake Readme
...
This provides better error messages when the target cannot be found
2021-05-10 13:16:20 -06:00
Charles Giessen
95b82a9537
Add mention of needing to link to the dynamic linker on linux
...
If a user copy/pastes the code into their project, they need to link to the dynamic linker on linux platforms.
2021-04-22 23:47:07 -06:00
Charles Giessen
75db58ae8b
Refactor GenericFeaturesPNextNode
2021-04-18 14:42:35 -06:00
Charles Giessen
c607a65755
Remove memset, fix mismatched size comparison
2021-04-18 14:42:35 -06:00
Charles Giessen
7271cac30c
Revert "Revert "Removed duplicate include.""
...
This reverts commit 0b2faf5659
.
2021-04-18 14:42:35 -06:00
Charles Giessen
193c20491a
Revert "Revert "Cleanup and warning for user provided VkPhysicalDeviceFeatures2.""
...
This reverts commit 38d150101b
.
2021-04-18 14:42:35 -06:00
Charles Giessen
90875cfaf5
Revert "Revert "Cleanup and asserts for VkPhysicalDeviceFeatures2.""
...
This reverts commit db55cb8f27
.
2021-04-18 14:42:35 -06:00
Charles Giessen
a0d1ce5b39
Revert "Revert "Simplified structures and plugged into existing logic.""
...
This reverts commit 2a352b5a25
.
2021-04-18 14:42:35 -06:00
Charles Giessen
f4eb8fdffc
Revert "Revert "Collapsed ExtensionFeatures and StructureContainer together into FeaturesContainer. After the purging of the function pointers all ExtensionFeatures was doing was just wrapping StructureContainers functions.""
...
This reverts commit 64aeed5855
.
2021-04-18 14:42:35 -06:00