Charles Giessen
bb312e8c92
InstanceBuilder now validates the apiVersion passed in and returns and error if the version is unsupported
2020-03-08 00:14:36 -07:00
Charles Giessen
40488fc7cd
Added defer_surface_initialization which allows skipping checking if a device and surface work together
2020-03-07 23:26:46 -07:00
Charles Giessen
3097f46074
Enabled warnings and fixes the warnings gcc/clang showed. Formatted CMakeLists.txt
2020-03-07 22:58:23 -07:00
Charles Giessen
10d9c2ee1b
Added const to builder functions and many other functions
2020-03-07 22:21:27 -07:00
Charles Giessen
5ae586b559
Created vk function pointer loading helper function
2020-03-07 21:57:49 -07:00
Charles Giessen
f389114811
Documented that features & extensions are propagated to DeviceBuilder
2020-03-07 17:36:55 -07:00
Charles Giessen
f74ee5e9fc
Ammended readme and moved around code for better readability
2020-03-07 17:19:58 -07:00
Charles Giessen
1014c836cb
Refactor of queue selection and getting
2020-03-07 17:02:01 -07:00
Charles Giessen
83fd58348b
Rename distinct queue functions and variables to seperate
2020-03-07 16:02:18 -07:00
Charles Giessen
6043129631
Renamed allow_fallback_gpu_type to allow_any_type and refactored implementation to be simpler
2020-03-07 15:48:52 -07:00
Charles Giessen
8a18c5a7ba
Added allocation callbacks
2020-03-07 15:33:17 -07:00
Charles Giessen
d29d8d0daf
Fixed several bugs in SystemInfo constructor
2020-03-07 15:08:00 -07:00
Charles Giessen
d58b099da8
Removed check_and_add functions for instance layers and extensions
2020-03-07 02:53:54 -07:00
Charles Giessen
9561e30373
added to_string helper functions for the error enums
2020-03-07 02:41:52 -07:00
Charles Giessen
0ed5ac8435
Replaced C style cast with reinterpret_cast
2020-03-07 02:14:59 -07:00
Charles Giessen
b183c05f45
Updated to_string_message_type to handle more than one category
2020-03-07 02:11:32 -07:00
Charles Giessen
e33cc3479b
Change function allow_fallback_gpu to allow_fallback_gpu_type
2020-03-07 02:06:11 -07:00
Charles Giessen
a4ab8e099d
Renamed many InstanceBuilder functions, added SystemInfo struct.
...
SystemInfo will be the way for users to know what is and isn't available on their system.
Currently, it only has booleans for if validation layers and debug messenger are available,
but more could be added in the future.
2020-03-07 01:46:25 -07:00
Charles Giessen
6933882f63
Got vk-bootstrap compiling on Windows and fixed class/struct inconsistency
2020-02-27 20:58:38 -07:00
Charles Giessen
6f0184bdbe
Made compute and transfer queues have distinct and dedicated options. This means you can choose between
...
whether you select a compute/transfer queue that can alias and one that cannot.
It is due to some hardware having dedicated compute or dedicated transfer but not both.
Also added some todo's for what to test.
2020-02-18 19:45:22 -07:00
Charles Giessen
37656d311a
Added documentation to InstanBuilder and PhysicalDevice Selector
...
Updated readme's example code and included better build instructions
2020-02-18 19:17:08 -07:00
Charles Giessen
7de79b81b1
Implemented missing instance functions, deleted surface in tests.
2020-02-18 17:21:22 -07:00
Charles Giessen
b171ced11e
Fixed pNext chain setup function and added validation flags/enables to run_tests
2020-02-17 14:09:40 -07:00
Charles Giessen
38076c4f53
Made transfer & compute queues not be requested by default
2020-02-17 13:31:06 -07:00
Charles Giessen
bb4a752d2d
Fixed CustomQueueDescription lacking a constructor
2020-02-17 13:29:22 -07:00
Charles Giessen
4a4078d276
Fixed lack of nullptr check for app and engine name in InstanceBuilder
2020-02-17 13:22:49 -07:00
Charles Giessen
14541f447c
removed dependency on std::min & std::max
2020-02-17 13:22:31 -07:00
Charles Giessen
83d58fc6d4
Fixed example in readme, made transfer/compute queue selection find a distinct queue,
...
removed uncessary private members in vkb::Instance, and removed superfluous comment headers
2020-02-17 13:13:09 -07:00
Charles Giessen
cf8411ae78
Replaced std::string with const char *
...
Now checks extensions being valid on the instance.
2020-02-11 17:51:03 -07:00
Charles Giessen
2b711f30d5
Finished basic rewrite of queue handling logic
...
Premise is to let the easy creation of a compute or transfer queue.
If the user supplies a custom list they want to use, defer to that.
Else, enable the basic requirements and be on your merry way.
2020-02-10 18:01:58 -07:00
Charles Giessen
3e7e283e3f
Revised error handling to be sensible and consistent.
...
While more error values need to be fleshed out (one for every possible vulkan error)
it has all of the major issues handled.
2020-02-10 11:29:09 -07:00
Charles Giessen
5375504bb3
WIP queue rewrite
2020-02-07 17:34:05 -07:00
Charles Giessen
4a464a61aa
Made it possible to specify the desired queue priorities.
...
If none are provided, it will use 1.0f for everything.
2020-02-06 16:56:50 -07:00
Charles Giessen
8b33c46bf9
Moved some functions to .cpp, modified preferred physical device.
...
Also adjusted the .clang-format for better legibility of code
2020-02-06 15:46:14 -07:00
Charles Giessen
c30782a106
Removed allocators and added new swapchainbuilder constructor
...
Allocators only complicated the interface and likely aren't needed. They
are useful on other function calls, but none of the ones here mattered.
A constructor was added to swapchain that has all the handles it needs.
This way users don't have to pass in the vkb::Device struct to use the
swapchain builder
2020-02-06 14:20:39 -07:00
Charles Giessen
4851a5bec9
Fixed issue with queue priorities
...
Before it only had 1 priority even if there were multiple queues.
Now it creates a vector of priorities so it shouldn't cause issues.
It also means logic to setup actual priority values can be put in place
in the future
2020-02-04 10:26:46 -07:00
Charles Giessen
8734ed18e0
moved triangle.cpp to its own folder, updated readme & license
2020-02-03 20:34:46 -07:00
Charles Giessen
39a3c37465
Fixed up swapchain, added an example based on vulkan-tutorial
...
Now there is a concise example of the library in use all the way to presenting.
Needs to be rewritten to remove exceptions, but for first pass its good enough.
2020-02-03 16:23:47 -07:00
Charles Giessen
37bc741658
Moved all source code into 2 files
...
This will make it easier to include in other projects.
Revamped how pNext chains work to no longer cause crashes.
2020-01-31 15:23:22 -07:00
Charles Giessen
155677ec0f
Added glfw as git submodule + Catch2
...
Made the physical device, device, and swapchain builders take the required
parameters as constructor arugments.
Made tests optional using a cmake bool
2020-01-30 01:47:41 -07:00
Charles Giessen
d9ca075c86
First commit of Vk-Bootstrap
...
Library contains barebones implementations for simplified
Instance creation
Physical Device selection
Device creation
Swapchain Creation/Recreation
Much of the repo is WIP, and there is little to no testing.
Also, while a single header file is desired for the future, currently
it is structured more like a normal project with .cpp files
2020-01-30 01:20:18 -07:00