Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.20.0 #3794

Merged
merged 17 commits into from
Mar 12, 2025
Merged

Release v2.20.0 #3794

merged 17 commits into from
Mar 12, 2025

Conversation

Saviq
Copy link
Collaborator

@Saviq Saviq commented Mar 4, 2025

Saviq and others added 5 commits February 27, 2025 10:52

Verified

This commit was signed with the committer’s verified signature.
Try more fonts and more locations when drawing SSD text
The main active ingredient here is passing through the list of
`GLRenderingProviders` when invoking the `SetCompositor` hook, necessary
for QtMir to allocate `Framebuffer`s to submit to output and to get
`gl::Texture`s out of `mg::Buffer`s.

Also some miscellaneous drive-through cleanup, and the addition of
`gl::Texture::tex_id()` that significantly simplifies QtMir by exposing
something Mir already¹ knows.

¹: With the exception of `ShmBuffer`, but this also prompts a bit of
cleanup.
@Saviq Saviq requested a review from a team as a code owner March 4, 2025 08:40
Fixes: #3788
@Saviq Saviq changed the title Release 2.20.0 Release v2.20.0 Mar 4, 2025
@Saviq

This comment was marked as outdated.

@AlanGriffiths
Copy link
Collaborator

Needs #3793

Fixes: #3734

Unclear why/if it was needed before, but today it just breaks things.
@AlanGriffiths
Copy link
Collaborator

I suggest we also cherry-pick:

@Saviq
Copy link
Collaborator Author

Saviq commented Mar 6, 2025

~rc12

Test Plan

Platforms

24.04 24.10
gbm-kms @AlanGriffiths
atomic-kms @AlanGriffiths
eglstream-kms
eglstream-kms + gbm-kms hybrid
x11 @AlanGriffiths @AlanGriffiths
wayland @AlanGriffiths
virtual @AlanGriffiths @AlanGriffiths

Console Providers

24.04 24.10
vt @AlanGriffiths @AlanGriffiths
logind @AlanGriffiths
minimal @AlanGriffiths @AlanGriffiths

Window Manager Examples

24.04 24.10
--window-manager=floating @AlanGriffiths @AlanGriffiths
--window-manager=tiling @AlanGriffiths
-kiosk @AlanGriffiths

Notes

Issue Comment
#3803 Not a blocker: we will aim for an ABI stable update with #3807 (probably 2.21.0)
#3808 Blocker (introduced by #3698)
#3786 This seems like a blocker, but not got a good re-producer

Saviq and others added 5 commits March 6, 2025 13:01
More complex than #3784, but
doesn't have unwanted side-effect

Fixes:  #3792
Keep references to server components by weak pointer so that we do not
extend their life beyond the life of the server
Because we're on an `EGLContextExecutor` we're probably on a different
thread to where the GL state is going to be used, *and* we don't
have implicit flushing with `eglMakeCurrent` happening (because
the context just stays current on the `EGLContextExecutor`.

If the GL implementation has per-thread execution queues (for example,
amdgpu by default), this might mean that the texture setup commands
aren't visible to command stream that's actually using the
texture.

Explicitly `glFlush()` after our texture setup, to ensure
these commands are visible to any `EGLContext` that might
need them.

Closes: #3792
Found compile errors such as the following both on v2.19.3 and main
(with this PR being verified against the latter):
```
In file included from src/platforms/common/server/kms-utils/threaded_drm_event_handler.cpp:17:
In file included from src/platforms/common/server/kms-utils/threaded_drm_event_handler.h:20:
src/platforms/common/server/kms-utils/drm_event_handler.h:42:14: error: no template named 'function' in namespace 'std'
   42 |         std::function<void(unsigned int frame_number, std::chrono::milliseconds frame_time)> on_flip) = 0;
      |         ~~~~~^

In file included from src/server/server.cpp:39:
In file included from src/server/frontend_wayland/wayland_connector.h:20:
src/include/server/mir/shell/token_authority.h:72:10: error: no type named 'mutex' in namespace 'std'
   72 |     std::mutex mutable mutex;
      |     ~~~~~^

In file included from src/server/scene/session_manager.cpp:17:
In file included from src/server/scene/session_manager.h:20:
src/include/server/mir/scene/session_coordinator.h:47:9: error: unknown type name 'pid_t'
   47 |         pid_t client_pid,
      |         ^

src/miral/config_file.cpp:126:28: error: implicit instantiation of undefined template 'std::basic_istringstream<char>'
  126 |         std::istringstream config_stream{config_dirs};
      |                            ^
/usr/bin/../include/c++/v1/__fwd/sstream.h:26:28: note: template is declared here
   26 | class _LIBCPP_TEMPLATE_VIS basic_istringstream;
      |                            ^
```
Since I already fixed similar issues in #3388 and they seem to keep
coming back overtime would it make sense to have CI testbuild against
musl paired with LLVM libc++ as well? Using alpine edge as a base with
`apk add clang19 lld libc++-dev llvm-libunwind-dev` and adding
`--rtlib=compiler-rt` to `CFLAGS`, `-stdlib=libc++ -unwindlib=libunwind`
to `CXXFLAGS` and `-fuse-ld=lld` to `LDFLAGS` should more or less
replicate my setup (minus using LLVM in place of binutils?)
debian/changelog Outdated

- ABI summary:
. miral ABI unchanged at 7
. mircommon ABI bunped to 11
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
. mircommon ABI bunped to 11
. mircommon ABI bumped to 11

tarek-y-ismail and others added 5 commits March 7, 2025 12:30
…closed (#3698)"

This reverts commit 9fc7694, reversing
changes made to 11c3234.
Fixes: #3786
@tarek-y-ismail
Copy link
Contributor

tarek-y-ismail commented Mar 10, 2025

Just tested eglstream + gbm-kms. Still have the nvidia related crash when closing windows and xwayland crashing on resizing. No big deal since that was already known.

I'm not sure if it's related to this release: If I get notifications in miral-app (like what just happened when I edited the table), rendering locks up for a couple of seconds. The cursor can still move, but no input handling or rendering is done.

@AlanGriffiths
Copy link
Collaborator

when I edited the table

For the avoidance of doubt: you were testing ~rc17, but editing the ~rc12 comment?

@Saviq
Copy link
Collaborator Author

Saviq commented Mar 10, 2025

~rc17

Test Plan

Platforms

24.04 24.10
gbm-kms @AlanGriffiths
atomic-kms @AlanGriffiths
eglstream-kms
eglstream-kms + gbm-kms hybrid
x11 @AlanGriffiths
wayland @AlanGriffiths
virtual @AlanGriffiths

Console Providers

24.04 24.10
vt
logind @AlanGriffiths
minimal @AlanGriffiths

Window Manager Examples

24.04 24.10
--window-manager=floating @AlanGriffiths
--window-manager=tiling
-kiosk @AlanGriffiths

Notes

Issue Comment
#3803 Not a blocker: we will aim for an ABI stable update with #3807 (probably 2.21.0)

@Saviq
Copy link
Collaborator Author

Saviq commented Mar 10, 2025

If I get notifications

Are these actual notifications (like using sway-nc), or just notification-like windows popped up by the apps? Can you change focus?

You should be able to check with notify-osd whether that reproduces.

EDIT:
Ref. #2586 (comment)

Also, comparing with v2.19.3 would be good.

@tarek-y-ismail
Copy link
Contributor

For the avoidance of doubt: you were testing ~rc17, but editing the ~rc12 comment?

Wasn't paying attention to the number. You are correct

@tarek-y-ismail
Copy link
Contributor

Are these actual notifications (like using sway-nc), or just notification-like windows popped up by the apps? Can you change focus?

Whatever firefox uses. When the issue occurred I was just editing the table to add my signature, got a notification, and everything froze for a moment. No alt-tab, no response to cursor clicks, nothing.

Ref. #2586 (comment)

Don't think focus stealing plays into this. Isn't it disabled by default?

Also, comparing with v2.19.3 would be good.

I use miriway based on 2.19.3 everyday and get tons of email notifications with no freezes whatsoever

@Saviq
Copy link
Collaborator Author

Saviq commented Mar 10, 2025

Don't think focus stealing plays into this. Isn't it disabled by default?

I just mean the notification-like-window in the middle:

frame_2022-08-26T10:51+02:00

@tarek-y-ismail
Copy link
Contributor

I just mean the notification-like-window in the middle:

Yep, that's still there. The notification looks close to the one that appeared when the freeze occurred, but it's not freezing.
20250310_16h43m10s_grim

@Saviq
Copy link
Collaborator Author

Saviq commented Mar 10, 2025

I use miriway based on 2.19.3 everyday

but it's not freezing.

Can you work with miriway/edge/mir-pr3794 to see if this exhibits the same?

Do you have a reproducer of the problem? E.g. https://www.kenherbert.dev/browser-notification-tester/ ?

Copy link
Collaborator

@AlanGriffiths AlanGriffiths left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@Saviq Saviq merged commit 7993cfe into main Mar 12, 2025
47 of 56 checks passed
@Saviq Saviq deleted the release/2.20 branch March 12, 2025 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants