You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently there's vk_render.c which is kind of both collecting/passing though models for rendering, and doing the traditional rendering.
There's vk_rtx.c which is ray tracing rendering main core.
There's also vk_framectl.c which is being painfully aware of which renderer we're using.
This state of affairs doesn't bring joy.
What we could do instead is:
Split vk_render.c into:
"proxy", which collects model rendering requests in sequence (they are ordered by the engine/scene)
traditional renderer, which performs the rendering of a given sequence
Devise a Performer API, which suits both traditional and ray tracing renderer
Make both trad and rt renderer modules implementing this API.
Make framectl unaware of specific renderer. It should just pick the right performer from a list based on cvar. Or, maybe, the proxy could do that?
The only nasty quirk here is render-pass opening before or after the renderer: RT does not need renderpass for itself, but 2D overlay draws onto the RT result. Trad does use the renderpass fully. Maybe the renderer could have both function for before and after renderpass?
Ultimately, if meatpipe could be expanded enough, even trad renderer could be backed by just a meatpipe configuration, and we could have arbitrary renderers, pluggable, reloadable, and hot-swappable in realtime.
The text was updated successfully, but these errors were encountered:
Currently there's
vk_render.c
which is kind of both collecting/passing though models for rendering, and doing the traditional rendering.There's
vk_rtx.c
which is ray tracing rendering main core.There's also
vk_framectl.c
which is being painfully aware of which renderer we're using.This state of affairs doesn't bring joy.
What we could do instead is:
vk_render.c
into:Ultimately, if meatpipe could be expanded enough, even trad renderer could be backed by just a meatpipe configuration, and we could have arbitrary renderers, pluggable, reloadable, and hot-swappable in realtime.
The text was updated successfully, but these errors were encountered: