Bill Currie
264c4ccdac
Sanitize descriptors
...
I'm sure it will end soon, I think pipelines is the end of it.
2020-02-18 21:18:03 +09:00
Bill Currie
c740dea212
Use the correct constant for "infinity"
2020-02-18 19:44:40 +09:00
Bill Currie
0a0035e5e5
Use the render pass to clear the window
...
Very satisfying to get to this point.
2020-02-18 17:48:22 +09:00
Bill Currie
ba654b09f7
Create and destroy render pass and frame buffers
2020-02-18 17:18:37 +09:00
Bill Currie
1f4c019abc
Create and destroy color/depth resources
2020-02-18 14:28:28 +09:00
Bill Currie
89d48b5650
Output first pixels
...
Just clearing the screen to 0xbada55, but the validation layer is quiet.
2020-02-18 01:03:36 +09:00
Bill Currie
73fde40cad
Sanitize some more structs
2020-02-17 23:30:25 +09:00
Bill Currie
94565c2382
Rework much of the Vulkan array handling
...
So much for all those little wrappers hiding the device. Some survived,
but mostly just the bigger things like device, swapchain, etc.
2020-02-17 20:29:35 +09:00
Bill Currie
ce72135e70
Fix incorrect init of command buffer set
2020-02-17 00:10:59 +09:00
Bill Currie
4b152a4492
Rework semaphore sets
2020-02-17 00:10:32 +09:00
Bill Currie
b947cc1791
Rework command buffer and fence-set management
...
I found command buffer handling to be totally redundant and fence-set
management to be a bit awkward.
2020-02-16 22:43:57 +09:00
Bill Currie
d56f88f779
Implement swapchain image acquisition
2020-02-15 17:56:02 +09:00
Bill Currie
53b46f0541
Implement pipeline stuff
2020-02-13 04:21:35 +09:00
Bill Currie
69c110193a
Fix a thinko
...
Wrong var for computing number of slots used.
2020-02-13 04:20:54 +09:00
Bill Currie
61036378e2
Implement render pass stuff
2020-02-12 18:55:51 +09:00
Bill Currie
44f5b134e6
Free custom descriptor structs
...
Forgot this earlier
2020-02-12 18:55:22 +09:00
Bill Currie
85a2f9f621
Implement descriptor stuff
2020-02-12 16:36:01 +09:00
Bill Currie
6e96b91aa1
Fix a couple more optimization warnings
2020-02-11 15:59:12 +09:00
Bill Currie
3144443a82
Allow vulkan_draw to compile when optimizing
...
Even though it's nowhere near done
2020-02-11 12:19:16 +09:00
Bill Currie
29b1d6baf8
Finish up memory stuff
...
For now, of course.
2020-02-11 09:37:04 +09:00
Bill Currie
1baee0cbba
Implement mem mapping and buffer/image copying
2020-02-10 20:42:19 +09:00
Bill Currie
43e37aa31e
Separate out the generic memory stuff
2020-02-10 18:33:29 +09:00
Bill Currie
9fdc15c439
Implement image stuff up to view creation
2020-02-10 18:18:37 +09:00
Bill Currie
f4c0d0ebcf
Implement buffer view creation
...
And rename memory allocation as it's buffer-specific.
2020-02-10 18:17:58 +09:00
Bill Currie
2f9ad73f78
Implement buffer memory up to barriers
...
Still lots to go (views, destruction, transfer...) and I'm uncertain
about the location of the pipeline barrier function.
2020-02-10 15:07:35 +09:00
Bill Currie
8148f256f5
Rework object device caching
...
It turned out I needed access to the physical device from a buffer
object, so rather than storing the vulkan logical device directly in
buffer (and other) objects, store the qfv logical device.
2020-02-07 11:45:05 +09:00
Bill Currie
d3b4e4653e
Cache physical devices in the instance
2020-02-06 19:04:28 +09:00
Bill Currie
4957c4f31a
Implement the rest of the command stuff
2019-07-23 13:05:32 +09:00
Bill Currie
a165d67dfa
Add a queue type
2019-07-23 12:37:47 +09:00
Bill Currie
411b897f09
Implement most of the stuff for command submission
2019-07-23 12:28:57 +09:00
Bill Currie
1f24a1408a
Destroy the surface
2019-07-13 01:20:02 +09:00
Bill Currie
dd1c2db249
Clean up the swapchain
...
And be a little safer about it
2019-07-13 01:14:21 +09:00
Bill Currie
b4dc746a66
Clean up the debug callback
2019-07-13 01:11:34 +09:00
Bill Currie
1eafc33052
Ensure vulkan gets shut down
2019-07-13 00:36:21 +09:00
Bill Currie
b2e12d701b
Fix up swapchain creation
...
Things are working again.
2019-07-12 14:09:42 +09:00
Bill Currie
66e7336b62
Initialize device extension checks early
...
They need to be initialized before attempting to load the function
pointers.
2019-07-12 13:37:30 +09:00
Bill Currie
75f19f7243
Completely rework the vulkan related api
...
Things don't work yet, but this feels much cleaner.
2019-07-12 13:34:31 +09:00
Bill Currie
b5828bc2ce
Output validation message severity
...
It's nice knowing if something is an error or otherwise.
2019-07-11 00:58:37 +09:00
Bill Currie
c0bc5cfad6
Implement swapchain creation
2019-07-11 00:58:14 +09:00
Bill Currie
2771e9c573
Correct extension handling
...
I had missed a critical bit from the cookbook.
2019-07-10 13:16:46 +09:00
Bill Currie
ed3c5cb9ec
Add a strset "class"
...
It's just a wrapper around hashtab, but it makes checking if a string is
in a set easy. Way overkill when only a few extensions are enabled, but
more might come later.
2019-07-10 13:09:16 +09:00
Bill Currie
8a3cd224a3
Add vulkan developer flag
2019-07-09 20:14:30 +09:00
Bill Currie
68449d0f6f
Create a window and a surface for vulkan
...
Yay, segfaults in R_Init :)
2019-07-09 16:33:44 +09:00
Bill Currie
0f511e8342
Move the string list funcs to their own file
...
They're not (at this stage, at least) worthy of being promoted out to
the utils lib.
2019-07-09 14:24:55 +09:00
Bill Currie
b3d982bfc3
Remove global vulkan_ctx
...
While I can't say that I'm happy with the details of vulkan_ctx_t, I am
pretty sure I don't want to be limited to having only one.
2019-07-09 11:54:23 +09:00
Bill Currie
707bdfc5f2
Get vulkan back to where it was
2019-07-09 09:06:35 +09:00
Bill Currie
8ee06d75a9
Separate render and presentation initialization
...
This paves the way for clean initialization of the Vulkan renderer, and
very much cleans up the older renderer initialization code as gl and sw
are no longer intertwined.
2019-07-09 01:00:47 +09:00
Bill Currie
6137795682
Use deep binding for the vulkan loader
...
This fixes the problem with using vkGetInstanceProcAddr to find global
vulkan functions.
2019-07-07 16:48:53 +09:00
Bill Currie
7137d61c36
Add some extensions needed for presentation
2019-07-07 16:27:55 +09:00
Bill Currie
940ef833ae
Shutdown Vulkan properly
...
Well, as properly as can be considering how little is started up :P
2019-07-07 14:34:02 +09:00
Bill Currie
ab08e4f207
Create a logical device with a single queue
...
A single graphics-capable queue should be enough for now. However, I'm
not sure I'm happy with a lot of the code: it's a bit difficult to write
flexibly configured code for Vulkan (or seems to be at this stage),
especially in C.
2019-07-07 01:28:05 +09:00
Bill Currie
2bc78e7f0a
Start work on a Vulkan-based renderer
...
Doesn't do much other than create an instance and enumerate some stuff,
but the build system is working.
2019-07-06 14:56:15 +09:00