Commit Graph

23 Commits

Author SHA1 Message Date
Kevin Trogant
9008d08d9f Chain framegraph semaphores together
Quick RenderDoc check suggests that this works as intended :-)
2024-02-27 14:35:48 +01:00
Kevin Trogant
ee24cd4903 Differentiate between graphics and compile passes 2024-02-27 10:00:00 +01:00
Kevin Trogant
bc6076b786 Seems like a valid chain of image transitions.
Now we need to draw something and also have the correct semaphore waits
to establish dependencies.
2024-02-20 13:47:47 +01:00
Kevin Trogant
1e49b14879 Present the first (black) image 2024-02-19 10:27:53 +01:00
Kevin Trogant
e989c2b406 Creating timed semaphores
- Similar to Dx12 fences.
- More flexible than VK 1 binary semaphores.
2024-02-16 15:31:23 +01:00
Kevin Trogant
887fa63c43 Manage command buffers
I decided to make queues explicit, to simplify handling queue ownership
transfers in the renderer code. The framegraph + pass code has explicit knowledge
about resource ownership, so it makes sense to handle it there.

- Manage pools
- Allocate command buffers
- Submit command buffers
2024-02-13 08:35:19 +01:00
Kevin Trogant
b44b3e651b Add interface for command buffers 2024-02-09 10:20:00 +01:00
Kevin Trogant
765e263979 Add render_command_buffer handle type
Also unify handle types via macro
2024-02-09 10:09:39 +01:00
Kevin Trogant
4f27819fa2 Improve dll build
Still not perfect, but more user friendly now.
2024-02-08 16:57:01 +01:00
Kevin Trogant
027ef8a46f Restructure the project
Move asset_compiler into its own (static) library.
This removes the dependency on it from the runtime and makes it possible
to have a standalone asset_compiler tool (useful for modding support).

Split meson.build into sub-files to improve readability.

Give each target its own pch directory.
This is more inline with what the meson manual recommends.

Export dependencies to make it possible to use the engine as a meson
subproject.
This is currently untested.
2024-02-07 13:56:06 +01:00
Kevin Trogant
cc49a017f9 Load framegraphs from resource files 2024-02-06 17:57:14 +01:00
Kevin Trogant
bdd3db98bb Add creation function for framegraphs and render targets
- The framegraph code currently does not attempt to alias render
  targets, but this should be pretty straightforward to add.
2024-02-05 21:49:09 +01:00
Kevin Trogant
fc08ab08d4 Test resource manager and renderer integration 2024-02-05 01:23:31 +01:00
Kevin Trogant
abb367dffc rename the engine to recreational.tech 2024-01-16 16:10:56 +01:00
Kevin Trogant
448d448430 started work on pipeline parsing 2024-01-16 16:03:30 +01:00
Kevin Trogant
19f7e29215 Progress on assetc 2023-12-10 23:09:19 +01:00
Kevin Trogant
11ec5a0cd2 Various improvements
- Support static linking
- Buffer manager
2023-11-23 22:03:02 +01:00
Kevin Trogant
97adb0dffa various updates 2023-11-22 11:23:52 +01:00
Kevin Trogant
6937e55888 feat: create vulkan swapchain 2023-10-25 23:24:04 +02:00
Kevin Trogant
904a26374b feat: create vulkan device, surface etc.
- Next up: swapchain
- Use volk
2023-10-23 23:12:45 +02:00
Kevin Trogant
fef087c906 merged vk/init.c 2023-10-17 23:00:07 +02:00
Kevin Trogant
4b97f8ff33 fix: Linux build
- Prepare for supporting Xlib and Wayland (in the future), by having a
  option for 'use_xlib'
- Fixed a few compile errors
2023-10-17 15:22:02 +02:00
Kevin Trogant
81798df3e9 ref, feat: Restructure
- The renderer backend is now its own library, loaded at runtime.
- Removed GLFW dependency, instead use win32 directly.
- Broke linux window creation, because it's not implemented yet.
  - Maybe use GLFW for linux?
2023-10-17 00:54:51 +02:00