Commit Graph

93 Commits

Author SHA1 Message Date
Kevin Trogant
b0e6839a1c Rip out renderer code
THIS WILL NOT COMPILE
2024-06-04 11:45:55 +02:00
6b830f3ff2 Add docs/NOTES_renderer_v3.md 2024-06-03 08:47:06 +02:00
Kevin Trogant
07efd27209 Merge branch 'main' of https://libneat.hopto.org/git/kevin/rtengine 2024-05-19 12:49:25 +02:00
Kevin Trogant
88da8ec889 Render a triangle 2024-05-19 12:48:50 +02:00
2d54e1a26a Update docs/LINKS.md 2024-05-16 09:22:34 +02:00
Kevin Trogant
656b21d1ef Loading and caching effects 2024-05-14 14:07:04 +02:00
Kevin Trogant
5d988d15b7 give passes views instead of lists
A view is a collection of lists. This is useful for a shadow mapping
pass that generates more than one shadow map.
Each view would create lists of objects visible in one shadow map.
2024-05-07 08:12:45 +02:00
Kevin Trogant
6052f35485 Determine pass execution levels
Useful for (once we have a job system) executing render passes in
parallel
2024-05-06 12:21:18 +02:00
Kevin Trogant
388b747a04 Executing the simplest possible render graph 2024-04-18 17:06:11 +02:00
Kevin Trogant
df50759303 Merge branch 'main' into f/framegraph-v2 2024-04-04 20:46:03 +02:00
Kevin Trogant
4d575dc229 pipelines 2024-04-04 20:01:37 +02:00
Kevin Trogant
e7971e7bad compiling shaders 2024-04-04 08:51:48 +02:00
Kevin Trogant
e93847b187 Begin and end pass 2024-04-03 22:56:31 +02:00
Kevin Trogant
2651ce2e9d buffers 2024-04-03 22:01:33 +02:00
Kevin Trogant
565c330f71 render targets 2024-04-03 20:56:10 +02:00
Kevin Trogant
2035f73f3e init dx11 and basic present 2024-04-02 19:47:28 +02:00
Kevin Trogant
5a7d06e123 null implementation of the render graph builder 2024-04-02 19:44:51 +02:00
Kevin Trogant
c7e5bb8a31 Render Graph prep 2024-04-02 19:43:02 +02:00
Kevin Trogant
3bc192b281 dump state
this will be the basis of the framegraph rewrite, because the current
state is fucked
2024-03-25 17:55:03 +01:00
Kevin Trogant
6f89dd4c46 Try to improve resource layout transition 2024-03-17 15:10:45 +01:00
Kevin Trogant
2a2a743c78 Merge branch 'main' of https://libneat.hopto.org/git/kevin/rtengine 2024-03-08 01:13:16 +01:00
Kevin Trogant
3d0d4169f1 Progress towards rendering with effects
- Added a null renderer to simplify testing
2024-03-08 01:13:10 +01:00
a817cb2781 Update docs/LINKS.md 2024-03-05 08:36:28 +01:00
Kevin Trogant
efd1f5f983 Merge branch 'main' of https://libneat.hopto.org/git/kevin/rtengine 2024-02-29 16:49:57 +01:00
Kevin Trogant
41fe5426b8 Start work on effect files
Extends pipeline files
2024-02-29 16:43:27 +01:00
Kevin Trogant
b4eef37741 Fix linux build
I did not test if it actually runs, but it builds with warning_level=2.
2024-02-29 16:12:09 +01:00
Kevin Trogant
28711ccb72 2/2 Fix meson_options.txt 2024-02-29 10:27:15 +01:00
Kevin Trogant
db9b0f5b10 1/2 Fix meson_options.txt mess
It's currently a symlink.
This commit deletes the file, the second will re-add it properly
2024-02-29 10:25:27 +01:00
Kevin Trogant
36e2314f35 Fix for allocation problems
- Double allocation because of missing break
2024-02-28 16:34:43 +01:00
Kevin Trogant
8dc4f794b3 Workaround for memory corruption in asset processor
Somehow the asset processor threads corrupt each others memory - replace
the asset of thread X with the asset of thread Y.
Weird.
2024-02-28 13:57:50 +01:00
Kevin Trogant
9d2987121e Add debug names to framegraph objects
Better renderdoc output
2024-02-28 13:38:41 +01:00
Kevin Trogant
424345374f Rename project
This is more the engine than the game project.
It's possible that the game will go into a separate repository at some
point.
2024-02-28 08:44:35 +01:00
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
9b162379d4 Merge branch 'main' of https://libneat.hopto.org/git/kevin/voyage 2024-02-13 08:36:48 +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
b939d1498e Update docs/LINKS.md 2024-02-13 00:51:49 +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
c23f03e622 Add single-threaded framegraph execute function 2024-02-09 00:07:35 +01:00
Kevin Trogant
abe05f3780 Add basic infrastructure for running update and render threads
Communicate progress via a pair of semaphores
2024-02-08 23:06:23 +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
058c738da9 Merge branch 'r/meson_refactor' 2024-02-07 17:03:18 +01:00
Kevin Trogant
18b548b8bb Fixed broken framegraph resource copy
- Missed a relptr set
2024-02-07 17:02:23 +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
a7339ffd53 Add a semaphore type 2024-02-06 17:57:45 +01:00
Kevin Trogant
cc49a017f9 Load framegraphs from resource files 2024-02-06 17:57:14 +01:00