-
Notifications
You must be signed in to change notification settings - Fork 96
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
platform: Add DRMFormat descriptor #2358
Conversation
Various parts of Mir code want to know various things about pixel formats. The DRM fourcc format specifiers are reasonably well described, in common use through Linux subsystems, both kernel and userspace, and we already need to use them in various parts of the codebase. This adds some infrastructure for describing DRM formats.
This switches to a single lookup on construction (which also verifies that we understand the format) instead of a lookup per query.
This wasn't correctly adding library dependencies - it would add them to things that *linked* to the target, but not the target itself.
There are obvious additions to this, in a number of directions. Adding YUV buffer formats, conversions to/from MirPixelFormat, pulling some of the distributed GL format information in, using DRMFormat in more places, and so on. I've not done that because a bunch of the affected code is going to be changed in new-platform-API. |
Bunch of compilers no like:
|
Sadly, 20.04's (among others it seems) libstdc++ headers are not completely c++20 compatible. |
Still unhappy:
|
🔥 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks mostly sensible.
And I'm not against immutable types (they have lots of advantages).
bors delegate
Storing a `FormatInfo const&` is communicates that we're non-null, but means DRMFormat can't have an assignment operator. Switch to `FormatInfo const*` to get CopyAssign
Pretty sure that's a transient failure bors try |
bors merge |
2423: Release 2.8.0 r=AlanGriffiths,graysonguarino,RAOF,wmww,Saviq a=Saviq --- > - ABI summary: > - miral ABI unchanged at 4 > - mircommon ABI bumped to 9 > - mircookie ABI unchanged at 2 > - mircore ABI unchanged at 1 > - miroil ABI unchanged at 1 > - mirplatform ABI unchanged at 23 > - mirserver ABI bumped to 58 > - mirwayland ABI unchanged at 3 > - mirplatformgraphics ABI bumped to 20 > - mirinputplatform ABI unchanged at 8 > - Enhancements: > - Move generated protocol code to build directory (#2300) > - Allow --app-env-amend to be supplied multiple times (#2333) > - Make window title a configuration option (#2349) > - Add fatal_error if unable to bind Wayland socket (#2350) > - Add `mold` to the list of supported linkers (#2353) > - Platform refactoring towards hybrid GPU support (#2358, #2378, #2407) > - Implement wlr_screencopy_unstable_v1 for screenshots (#2383) > - Refactor out mf::MirDisplay (#2406) > - Bugs fixed: > - Synchronize buffer swaps to video frame in egl spinner (Fixes #2154) > - Do not give menus keyboard focus (Fixes #2324) > - Refactor Wayland keyboard input (Fixes #2331) > - Further simplify and correct keyboard focus setting (Fixes #2338) > - wl_pointer: do not send events when not compatible (Fixes #2341) > - Kill clients with error instead of sending unsupported (Fixes #2343) > - Initialize sig_handler_desc.sa_mask (#2386) > - Fix ThreadedDispatcherSignalTest.keeps_dispatching... (Fixes #2377) Co-authored-by: Michał Sawicz <michal@sawicz.net> Co-authored-by: bors[bot] <26634292+bors[bot]@users.noreply.github.com>
Various parts of Mir code want to know various things about
pixel formats. The DRM fourcc format specifiers are reasonably
well described, in common use through Linux subsystems,
both kernel and userspace, and we already need to use them
in various parts of the codebase.
This adds some infrastructure for describing DRM formats.