AvdanOS New Push: Rendering Backend - #204
Draft
Sammy99jsp wants to merge 8 commits into
Draft
Conversation
Sammy99jsp
marked this pull request as draft
July 22, 2026 15:52
Member
|
i can eventually properly test on all GPUs, intel igpu, intel arc, amd, whatever you need (like next week) |
Contributor
|
holy moly |
Member
Author
|
Rewritten the description of this PR to add a few more to-dos. Trying to think of a good API for the format negotiation. Maybe: impl Negotiate<Format> for Vulkan {
fn applicable(&self, formats: &[Format]) -> Vec<Format> {
todo!("Actual impementation here!")
}
}Same thing for the Skia stuff. Perhaps an extension trait: pub trait SkiaBackend: Backend {
fn make_context(&mut self) -> skia_safe::gpu::DirectContext<'_>{ todo!() } // or whatever;
} |
Member
Author
|
I have resorted to a nasty hack (modified from Smithay) whilst we wait for Smithay/drm-rs#224 to close. Apart from that, relatively simple to implement the CPU backend. |
Sammy99jsp
force-pushed
the
sammy99jsp/neo
branch
from
August 3, 2026 01:23
74b1f6e to
f3fc6ff
Compare
Sammy99jsp
force-pushed
the
sammy99jsp/neo
branch
from
August 3, 2026 01:27
f3fc6ff to
012181e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hello, everyone! Since Avdan has released a new video, we're trying to do a new push for development.
As part of this, we need to integrate with updated versions of our deps, as well as new Wayland protocols.
Anyway, since we have to rewrite everything, we might as well write things properly this time.
This PR includes rewriting the backend from scratch to use more performant tools like Sync Files to synchronise things between {Vulkan, OpenGL, CPU} and DRM {frame is ready to scanout; scanout finished, frame ready to write over}.
To-Do:
doubletriple-buffered rendering through a backend-agnostic API.XRGB8888format and pick the best for the display (HDR ftw!)OpenGLOpenGLThis works on my machine ™️ with
nvidia_drm, but it'd be nice to test with other graphics cards/integrated too.