Bill Currie
10a1b99a92
[vulkan] Implement lighting and compose passes
...
Lighting doesn't actually do lights yet, but it's producing pixels.
Translucent seems to be working (2d draw uses it), and compose seems to
be working.
2021-02-24 19:58:31 +09:00
Bill Currie
eeda04e3c9
[vulkan] Name most resources
...
This makes debugging with renderdoc and validation messages much easier
(no more "what buffer is that?").
2021-01-31 19:58:55 +09:00
Bill Currie
2c1a335715
[vulkan] Use vkCmdPushDescriptorSetKHR for bsp
...
This makes switching textures on the fly much easier.
2021-01-21 12:39:08 +09:00
Bill Currie
9e03096da6
[vulkan] Build brush model display lists
...
Not working particularly well yet, but no errors out of validation.
2021-01-21 02:13:40 +09:00
Bill Currie
abd3b90004
[vulkan] Implement basic quake texture loading
...
It optionally generates mipmaps, and supports the main texture types
(especially for texture packs), including palettes, but is otherwise
rather unsophisticated code. Needs a lot of work, but testing first.
2021-01-18 02:10:56 +09:00
Bill Currie
92afe9f265
[vulkan] Convert stagebuf to a ring buffer
...
I should have known this would be necessary, but it fixes the corruption
when updating the scrap.
2021-01-15 22:50:04 +09:00
Bill Currie
bb4ca7683e
[vulkan] Get the 2D pipeline up and running
...
First pixels! This was a nightmare of little issues that the validation
layers couldn't help with: incorrect input assembly, incorrect vertex
attribute specs. Though the layers did help with getting the queues
working. Still, lots of work to go but this is a major breakthrough as
I now have access to visual debugging for textures and the like.
2021-01-12 11:27:41 +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
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
53b46f0541
Implement pipeline stuff
2020-02-13 04:21:35 +09:00
Bill Currie
61036378e2
Implement render pass stuff
2020-02-12 18:55:51 +09:00
Bill Currie
85a2f9f621
Implement descriptor stuff
2020-02-12 16:36:01 +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
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
4957c4f31a
Implement the rest of the command stuff
2019-07-23 13:05:32 +09:00
Bill Currie
411b897f09
Implement most of the stuff for command submission
2019-07-23 12:28:57 +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
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
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
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
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