-
Notifications
You must be signed in to change notification settings - Fork 342
Conversation
6229ac5
to
a548b07
Compare
So, good news is that the current code works. Bad news is that everything is flipped + rotated by 180 degrees for some reason. |
Oh, yeah, I ran into that issue with #2268 too. Mesa bug or feature? |
OpenGL seems to expect (0, 0) to be the bottom-left corner when using |
c723151
to
51fb54d
Compare
5a5f384
to
d0cbe18
Compare
fa22f19
to
78bd87a
Compare
@emersion Thanks for looking into it. I think it may have indeed been a driver bug. Since last time I reproduced, I have updated kernel + mesa-git, and now I can't reproduce anymore. I'll start using this as a daily driver to test it out more :) |
cf35391
to
03d51a0
Compare
Fixed the screencopy issue when capturing a region of the screen. This PR doesn't have more known issues. @ddevault Should we wait on the iris bugfix before merging this? |
Should probably block the release but not necessarily the merge |
Agree. Then this is ready for another review round. |
The iris bug has been fixed: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7384 |
The swapchain maximum capacity is set to 4, so that we have enough room for: - A buffer currently displayed on screen - A buffer queued for display (e.g. to KMS) - A pending buffer that'll be queued next commit - An additional pending buffer in case we want to invalidate the currently pending one
Since all DRM FBs are backed by a wlr_buffer, there's no need for this anymore.
This avoids hitting an assertion in drm_fb_lock_surface when we failed to render a black frame.
All right, let's merge this. Thanks everyone for the feedback and testing! |
Great work! |
This is an alternative to #1355. Instead of re-working the whole API, this PR just uses the new infrastructure inside the DRM backend.
The DRM backend used
EGLSurface
andgbm_surface
until now. Stop using them and switch towlr_allocator
andwlr_swapchain
. These new interfaces are mostly copied over from glider.This PR doesn't break the wlroots API. For now the new APIs are not exposed in public header, once we add APIs that allow compositors to use it directly, we can easily move the headers to the public dir.
TODO:
EGL_BAD_PARAMETER
failures when callingeglDestroyImageKHR
on shutdownINTEL_DEBUG=nofc
orMESA_LOADER_DRIVER_OVERRIDE=i965
)References: #1352
Breaking changes: some implicit assumptions about
wlr_renderer
's EGL context no longer hold true. Compositors not using EGL directly shouldn't be affected.