25 Jan 2025
Planet KDE | English
Mnemonics, Mnemonics Everywhere
The M is silent. In computing this stands for the underlined letters in menus that can be triggered using an Alt+Letter key combination, one that you can remember and apply later to navigate around more quickly.
Qt and other toolkits typically use an ampersand to denote a mnemonic when assigning a menu entry. For instance, "&Shutdown" will be displayed as "Shutdown" and trigger on Alt+S whereas "Slee&p" will be "Sleep" and trigger on Alt+P. Of course this isn't limited to menus, pretty much any control, buttons and what not, can have mnemonics. Since they are part of the label, a translated string can and likely will have a different one.
KDE applications, both written in Qt Widgets and Qt Quick, automatically assign mnemonics for most controls that don't have one explicitly set. This is done through KAcceleratorManager and Kirigami's MnemonicData, respectively, using a set of rules based on the control's type. For example, a toolbar button is less important than a regular button or check box but both are more important than a section label. It also tries to use the first letter of a word, if that letter is not already taken. If a control is hidden the shortcut is removed again. The end result in a German dialog is "&Abbrechen" (Cancel), "&OK", and "A&nwenden" (Apply, since the A was already taken) for its footer.
While our Qt Quick Controls 2 Desktop Style automatically assigned mnemonics for all of its controls, Plasma Components did not for CheckBoxes, Switches, and some others. That is now fixed and it's now possible to use e.g. Alt+R to Raise maximum volume in the Volume applet or switch to the Applications tab using Alt+A. Likewise for the circular action button used on the lock and logout screens, you can now Alt+P to Sleep from the logout and lock screens! The "S" is taken for shutdown for consistency and unused on the lock screen.
I noticed that I couldn't trigger the toolbar buttons in System Settings even though they clearly showed an underlined letter. Turns out the shortcut was registered twice for some reason! If this happens, neither action is executed and instead the "activated ambiguously" signal is emitted. Kirigami's ActionToolBar is effectively two views: the regular strip of buttons and an overflow menu. The buttons are shown dynamically based on how much room there is available and the action's priority. There was a bug in Kirigami's mnemonic handler where hiding a control wouldn't release its shortcut, effectively registering every toolbar shortcut twice.
Speaking of Kirigami, there's a FormLayout similar to QFormLayout that we use for most of our settings pages. It has a label on the left, and control on the right. By default, the label generates a mnemonic to focus its buddy. However, we don't just want to focus the control, we want to trigger it as if we had clicked it. Qt 6.8 introduced an animateClick method on buttons that briefly flashes the button as a reminder of what's about to happen and then triggers it. For controls without this features, focus is set as before, albeit with ShortcutFocusReason to tell the control that it was focused as a result of a shortcut press. A ComboBox for instance reacts differently depending on how it got activated. I then also made sure no mnemonic is assigned to the label next to a control when the control itself already had one.
With those improvements done, I tested various Qt Quick applications and settings modules for their mnemonics. The "Display & Monitor" settings barely had any working ones. The thing is: FormLayout's labels by default are attached to the Item to which the label was added. In case of KScreen, we often used a RowLayout to place a control an a "contextual help button" (the little (i) button with more information) next to it. Since RowLayout isn't an interactive item, no mnemonic was assigned for the given row. Luckily, you can explicitly set buddyFor and tell it what the relevant control is. Doing that I made most of KScreen's settings reachable by Alt key combinations. While at it, I explicitly set the letter H for the HDR check box.
Now that you've seen me improve our mnemonic machinery, what can you do to make an application more accessible this way? Press and hold Alt, see what shortcuts get assigned, try triggering the underlined letter using Alt+letter:
- If there's a FormLayout and the control isn't reachable, check that there's a proper buddyFor set.
- For obvious abbreviation and words, consider to set a mnemonic explicitly so the letter used is consistent and predictable, like the "Enable &HDR" in Display settings
- For custom controls not based on Qt Quick Controls, you can use Kirigami.MnemonicData to register your control with our Mnemonic infrastructure and assign the shortcut it generated to a Shortcut item.
- Consider disabling mnemonics using Kirigami.MnemonicData.enabled where it doesn't make much sense to have them. e.g. controls in lists. Each one would just get a subsequent letter in its word assigned, reducing the pool of available letters for the important ones
- If a control doesn't show an underlined letter, try Alt+first letter in the label. Maybe it has one that doesn't show up for a reason?
- Finally: Report or fix bugs you find!
25 Jan 2025 8:03am GMT
This Week in Plasma: Fancy Time Zone Picker
Welcome to a new issue of "This Week in Plasma"! Every week we cover as much as possible of what's happening in the world of KDE Plasma and its associated apps like Discover, System Monitor, and more.
This week the bug-fixing for Plasma 6.3 continued, as well as a lot of new features and UI changes that have been in the pipeline for some time; these will mostly land in Plasma 6.4. There's a lot of cool stuff, so let's get into it!
Notable New Features
Late breaking Plasma 6.3 feature: Discover can now open flatpak:/
URLs. (Aleix Pol Gonzalez, 6.3.0. Link)
The time zone choosers present on System Settings' Date & Time page as well as the Digital Clock widget's settings page have been given a major upgrade: a visual UI using a world map! (Niccolò Venerandi, 6.4.0. Link 1 and link 2)
Notable UI Improvements
When activating the "Restore manually saved session" option on System Settings' Desktop Session page, the corresponding "Save Session" action now appears in Kickoff and other launcher menus immediately, rather than requiring a reboot first. (Marco Martin, 6.3.0. Link)
On System Settings' Users page, the dialogs used for choosing an avatar image are now sized more appropriately no matter the window size, and the custom avatar cropper feature now defaults to no cropping for square images. (Nate Graham, 6.3.0. Link 2 and link 2)
On the System Tray widget's settings window, the table on the Entries page now uses the alternating row color style to make it easier to match up the columns, especially when the window has been made enormous for some reason. (Marco Martin, 6.3.0. Link)
Improved the accessibility of several non-default Alt+Tab switcher styles. (Christoph Wolk, 6.3.0. Link)
Made the top corners' radii and side margins in Kickoff perfect. (Nate Graham, 6.3.0. Link)
Made the Breeze Dark color scheme a bit darker by default. (Thomas Duckworth, 6.4.0. Link)
Adjusted the visualization for different panel visibility modes to incorporate some animations, which makes them clearer. (Niccolò Venerandi, 6.4.0. Link)
You can now scroll on the Media Player widget's seek slider to move it without having to drag with the mouse. (Kai Uwe Broulik, 6.4.0. Link)
Scrolling on the Task Manager widget to switch between tasks is now disabled by default (but can be re-enabled if wanted, of course), as a result of feedback that it was easy to trigger by accident and could lead to disorientation. (Nate Graham, 6.4.0. Link)
Re-arranged the items on the context menu for Plasma's desktop a bit, to improve usability and speed for common file and folder management tasks. (Nate Graham, 6.4.0. Link)
The Audio Volume widget now has a hamburger menu button when used in standalone form, rather than as a part of the System Tray, where it already has one. (Niccolò Venerandi, 6.4.0. Link)
Tooltips for Spectacle's annotation buttons now include details about how to change their behavior using keyboard modifier keys. (Noah Davis, 6.4.0. Link)
Notable Bug Fixes
Fixed a case where the service providing the screen chooser OSD could crash when certain screens were plugged in. (Vlad Zahorodnii, 6.3.0. Link)
Fixed a case where KWin could crash on launch in the X11 session. (Fushan Wen, 6.3.0. Link)
Fixed a case where Discover would crash when trying to display apps with no reviews. (Fushan Wen, 6.3.0. Link)
Fixed a case where Plasma could crash after creating a new panel with certain screen arrangements. (Fushan Wen, 6.3.0. Link)
Fixed a random KWin crash. (Vlad Zahorodnii, 6.3.0. Link)
Fixed a bug affecting System Settings' Desktop Session page that would cause it to crash upon being opened a second time, and also not show the settings in their correct states. (David Edmundson, 6.3.0. Link 1, link 2)
Fixed several cases where screen positions and other settings might get reset after waking from sleep. (Xaver Hugl, 6.3.0. Link 1, and link 2)
You can once again drag files, folders, and applications to Kickoff's Favorites view to make them favorites, after this broke at some point in the past. In addition, the change also fixes an issue where Kickoff's popup would inappropriately open rather than move out of the way when you dragged another widget over it. (Noah Davis, 6.3.0. Link1 and link 2)
Apps that launch and immediately display a dialog window along with their main window no longer have those windows go missing in the Alt+Tab switcher. (David Edmundson, 6.3.0. Link)
Improved OpenVPN cipher parsing so it won't show cipher types that don't actually exist. (Nicolas Fella, 6.3.0. Link)
Activating a Plasma panel using a keyboard shortcut in the X11 session no longer causes it to bizarrely become a window! (Marco Martin, 6.3.0. Link)
System Settings' Touchpad page is no longer missing some options in the X11 session, depending on how you open it. (Jakob Petsovits, 6.3.0. Link)
Fixed a bug that could cause panels using the Auto-Hide and Dodge Windows settings to briefly get stuck open when activated while a full-screen window was active. (Niccolò Venerandi, 6.3.0. Link)
Right-clicking an empty area of the applications or process table in System Monitor no longer shows a context menu with no appropriate items in it. (Nate Graham, 6.3.0. Link)
Fixed a bug causing a second "System Settings" item to appear on System Settings' own Shortcuts page. (Raphael Kubo da Costa, 6.4.0. Link)
You can once again copy files and folders on the desktop using the Ctrl+C shortcut, after this broke due to an unusual interaction between the desktop and a placeholder message added a few versions ago. (Marco Martin, Frameworks 6.11. Link)
Fixed a case where a Qt bug could cause apps to crash in response to certain actions from the graphics drivers. (David Redondo, Qt 6.8.3. Link)
Other bug information of note:
- 1 Very high priority Plasma bug (same as last week). Current list of bugs
- 23 15-minute Plasma bugs (same as last week). Current list of bugs
- 124 KDE bugs of all kinds fixed over the past week. Full list of bugs
Notable in Performance & Technical
Fixed a bunch of memory leaks in KScreen. (Vlad Zahorodnii, 6.3.0. Link)
How You Can Help
KDE has become important in the world, and your time and contributions have helped us get there. As we grow, we need your support to keep KDE sustainable.
You can help KDE by becoming an active community member and getting involved somehow. Each contributor makes a huge difference in KDE - you are not a number or a cog in a machine!
You don't have to be a programmer, either. Many other opportunities exist:
- Triage and confirm bug reports, maybe even identify their root cause
- Contribute designs for wallpapers, icons, and app interfaces
- Design and maintain websites
- Translate user interface text items into your own language
- Promote KDE in your local community
- …And a ton more things!
You can also help us by making a donation! Any monetary contribution - however small - will help us cover operational costs, salaries, travel expenses for contributors, and in general just keep KDE bringing Free Software to the world.
To get a new Plasma feature or a bugfix mentioned here, feel free to push a commit to the relevant merge request on invent.kde.org.
25 Jan 2025 4:00am GMT
24 Jan 2025
Planet KDE | English
KDE: Snaps bug fixes and Kubuntu: Noble updates
Fixed a major crash bug in our apps that use webengine, I also went ahead and updated these to core24 https://bugs.launchpad.net/snapd/+bug/2095418 andhttps://bugs.kde.org/show_bug.cgi?id=498663
Fixed okular
Can't import certificates to digitally sign in Okular https://bugs.kde.org/show_bug.cgi?id=498558 Can't open files https://bugs.kde.org/show_bug.cgi?id=421987 and https://bugs.kde.org/show_bug.cgi?id=415711
Skanpage won't launch https://bugs.kde.org/show_bug.cgi?id=493847 in -edge please help test.
Ghostwriter https://bugs.kde.org/show_bug.cgi?id=481258
New KDE Snaps!
Kalm - Breathing techniques
Telly-skout - Display TV guides
Kubuntu: Plasma 5.27.12 has been uploaded to archive -proposed and should make the .2 release!
I hate asking but I am unemployable with this broken arm fiasco. If you could spare anything it would be appreciated! https://gofund.me/573cc38e
24 Jan 2025 8:00pm GMT
20 Jan 2025
planet.freedesktop.org
André Almeida: Linux 6.13, I WANT A GUITAR PEDAL
Just as 2025 is starting, we got a new Linux release in mid January, tagged as 6.13. In the spirit of holidays, Linus Torvalds even announced during 6.13-rc6 that he would be building and raffling a guitar pedal for a random kernel developer!
As usual, this release comes with a pack of exciting news done by the kernel community:
-
This release has two important improvements for task scheduling: lazy preemption and proxy execution. The goal with lazy preemption is to find a better balance between throughput and response time. A secondary goal is being able to make it the preferred non-realtime scheduling policy for most cases. Tasks that really need a reschedule in a hurry will use the older
TIF_NEED_RESCHED
flag. A preliminary work for proxy execution was merged, which will let us avoid priority-inversion scenarios when using real time tasks with deadline scheduling, for use cases such as Android. -
New important Rust abstractions arrived, such as VFS data structures and interfaces, and also abstractions for misc devices.
-
Lightweight guard pages: guard pages are used to raise a fatal signal when accessed. This feature had the drawback of having a heavy performance impact, but in this new release the flag
MADV_GUARD_INSTALL
was added for themadvise()
syscall, offering a lightweight way to guard pages.
To know more about the community improvements, check out the summary made by Kernel Newbies.
Now let's highlight the contributions made by Igalians for this release.
Case-insensitive support for tmpfs
Case sensitivity has been a traditional difference between Linux distros and MS Windows, with the most popular filesystems been in opposite sides: while ext4 is case sensitive, NTFS is case insensitive. This difference proved to be challenging when Windows apps, mainly games, started to be a common use case for Linux distros (thanks to Wine!). For instance, games running through Steam's Proton would expect that the path assets/player.png
and assets/PLAYER.PNG
would point to be the same file, but this is not the case in ext4. To avoid doing workarounds in userspace, ext4 has support for casefolding since Linux 5.2.
Now, tmpfs joins the group of filesystems with case-insensitive support. This is particularly useful for running games inside containers, like the combination of Wine + Flatpak. In such scenarios, the container shares a subset of the host filesystem with the application, mounting it using tmpfs. To keep the filesystem consistent, with the same expectations of the host filesystem about the mounted one, if the host filesystem is case-insensitive we can do the same thing for the container filesystem too. You can read more about the use case in the patchset cover letter.
While the container frameworks implement proper support for this feature, you can play with it and try it yourself:
$ mount -t tmpfs -o casefold fs_name /mytmpfs
$ cd /mytmpfs # case-sensitive by default, we still need to enable it
$ mkdir a
$ touch a; touch A
$ ls
A a
$ mkdir B; cd b
cd: The directory 'b' does not exist
$ # now let's create a case-insensitive dir
$ mkdir case_dir
$ chattr +F case_dir
$ cd case_dir
$ touch a; touch A
$ ls
a
$ mkdir B; cd b
$ pwd
$ /home/user/mytmpfs/case_dir/B
V3D Super Pages support
As part of Igalia's effort for enhancing the graphics stack for Raspberry Pi, the V3D DRM driver now has support for Super Pages, improving performance and making memory usage more efficient for Raspberry Pi 4 and 5. Using Linux 6.13, the driver will enable the MMU to allocate not only the default 4KB pages, but also 64KB "Big Pages" and 1MB "Super Pages".
To measure the difference that Super Pages made to the performance, a series of benchmarks where used, and the highlights are:
- +8.36% of FPS boost for Warzone 2100 in RPi4
- +3.62% of FPS boost for Quake 2 in RPi5
- 10% time reduction for the Mesa CI job
v3dv-rpi5-vk-full:arm64
- Aether SX2 emulator is more fluid to play
You can read a detailed post about this, with all benchmark results, in Maíra's blog post, including a super cool PlayStation 2 emulation showcase!
New transparent_hugepage_shmem=
command-line parameter
Igalia contributed new kernel command-line parameters to improve the configuration of multi-size Transparent Huge Pages (mTHP) for shmem. These parameters, transparent_hugepage_shmem=
and thp_shmem=
, enable more flexible and fine-grained control over the allocation of huge pages when using shmem.
The transparent_hugepage_shmem=
parameter allows users to set a global default huge page allocation policy for the internal shmem mount. This is particularly valuable for DRM GPU drivers. Just as CPU architectures, GPUs can also take advantage of huge pages, but this is possible only if DRM GEM objects are backed by huge pages.
Since GEM uses shmem to allocate anonymous pageable memory, having control over the default huge page allocation policy allows for the exploration of huge pages use on GPUs that rely on GEM objects backed by shmem.
In addition, the thp_shmem=
parameter provides fine-grained control over the default huge page allocation policy for specific huge page sizes.
By configuring page sizes and policies of huge-page allocations for the internal shmem mount, these changes complement the V3D Super Pages feature, as we can now tailor the size of the huge pages to the needs of our GPUs.
DRM and AMDGPU improvements
As usual in Linux releases, this one collects a list of improvements made by our team in DRM and AMDGPU driver from the last cycle.
Cosmic (the desktop environment behind Pop! OS) users discovered some bugs in the AMD display driver regarding the handling of overlay planes. These issues were pre-existing and came to light with the introduction of cursor overlay mode. They were causing page faults and divide errors. We debugged the issue together with reporters and proposed a set of solutions that were ultimately accepted by AMD developers in time for this release.
In addition, we worked with AMD developers to migrate the driver-specific handling of EDID data to the DRM common code, using drm_edid opaque objects to avoid handling raw EDID data. The first phase was incorporated and allowed the inclusion of new functionality to get EDID from ACPI. However, some dependencies between the AMD the Linux-dependent and OS-agnostic components were left to be resolved in next iterations. It means that next steps will focus on removing the legacy way of handling this data.
Also in the AMD driver, we fixed one out of bounds memory write, fixed one warning on a boot regression and exposed special GPU memory pools via the fdinfo common DRM framework.
In the DRM scheduler code, we added some missing locking, removed a couple of re-lock cycles for slightly reduced command submission overheads and clarified the internal documentation.
In the common dma-fence code, we fixed one memory leak on the failure path and one significant runtime memory leak caused by incorrect merging of fences. The latter was found by the community and was manifesting itself as a system out of memory condition after a few hours of gameplay.
sched_ext
The sched_ext landed in kernel 6.12 to enable the efficient development of BPF-based custom schedulers. During the 6.13 development cycle, the sched_ext community has made efforts to harden the code to make it more reliable and clean up the BPF APIs and documentation for clarity.
Igalia has contributed to hardening the sched_ext core code. We fixed the incorrect use of the scheduler run queue lock, especially during initializing and finalizing the BPF scheduler. Also, we fixed the missing RCU lock protections when the sched_core selects a proper CPU for a task. Without these fixes, the sched_ext core, in the worst case, could crash or raise a kernel oops message.
Other Contributions & Fixes
syzkaller, a kernel fuzzer, has been an important instrument to find kernel bugs. With the help of KASAN, a memory error detector, and syzbot, numerous such bugs have been reported and fixed.
Igalians have contributed to such fixes around a lot of subsystems (like media, network, etc), helping reduce the number of open bugs.
Check the complete list of Igalia's contributions for the 6.13 release
Authored (70)
André Almeida
- unicode: Fix utf8_load() error path
- MAINTAINERS: Add Unicode tree
- scripts/kernel-doc: Fix build time warnings
- libfs: Create the helper function generic_ci_validate_strict_name()
- ext4: Use generic_ci_validate_strict_name helper
- unicode: Export latest available UTF-8 version number
- unicode: Recreate utf8_parse_version()
- libfs: Export generic_ci_ dentry functions
- tmpfs: Add casefold lookup support
- tmpfs: Add flag FS_CASEFOLD_FL support for tmpfs dirs
- tmpfs: Expose filesystem features via sysfs
- docs: tmpfs: Add casefold options
- libfs: Fix kernel-doc warning in generic_ci_validate_strict_name
- tmpfs: Fix type for sysfs' casefold attribute
- tmpfs: Initialize sysfs during tmpfs init
Changwoo Min
- sched_ext: Replace rq_lock() to raw_spin_rq_lock() in scx_ops_bypass()
- sched_ext: Clarify sched_ext_ops table for userland scheduler
- sched_ext: add a missing rcu_read_lock/unlock pair at scx_select_cpu_dfl()
- MAINTAINERS: add me as reviewer for sched_ext
Christian Gmeiner
Guilherme G. Piccoli
- Documentation: Improve crash_kexec_post_notifiers description
- wifi: rtlwifi: Drastically reduce the attempts to read efuse in case of failures
Maíra Canal
- drm/v3d: Address race-condition in MMU flush
- drm/v3d: Flush the MMU before we supply more memory to the binner
- drm/v3d: Fix return if scheduler initialization fails
- drm/gem: Create a drm_gem_object_init_with_mnt() function
- drm/v3d: Introduce gemfs
- drm/gem: Create shmem GEM object in a given mountpoint
- drm/v3d: Reduce the alignment of the node allocation
- drm/v3d: Support Big/Super Pages when writing out PTEs
- drm/v3d: Use gemfs/THP in BO creation if available
- drm/v3d: Add modparam for turning off Big/Super Pages
- drm/v3d: Expose Super Pages capability
- drm/vc4: Use
vc4_perfmon_find()
- MAINTAINERS: Add Maíra to VC4 reviewers
- mm: shmem: control THP support through the kernel command line
- mm: move
get_order_from_str()
to internal.h - mm: shmem: override mTHP shmem default with a kernel parameter
- mm: huge_memory: use strscpy() instead of strcpy()
- drm/v3d: Enable Performance Counters before clearing them
- drm/v3d: Ensure job pointer is set to NULL after job completion
Melissa Wen
- drm/amd/display: switch amdgpu_dm_connector to use struct drm_edid
- drm/amd/display: switch to setting physical address directly
- drm/amd/display: always call connector_update when parsing freesync_caps
- drm/amd/display: remove redundant freesync parser for DP
- drm/amd/display: add missing tracepoint event in DM atomic_commit_tail
- drm/amd/display: fix page fault due to max surface definition mismatch
- drm/amd/display: increase MAX_SURFACES to the value supported by hw
- drm/amd/display: fix divide error in DM plane scale calcs
Thadeu Lima de Souza Cascardo
- media: uvcvideo: Require entities to have a non-zero unique ID
- hfsplus: don't query the device logical block size multiple times
- Bluetooth: btmtk: avoid UAF in btmtk_process_coredump
Tvrtko Ursulin
- drm/v3d: Appease lockdep while updating GPU stats
- drm/sched: Add locking to drm_sched_entity_modify_sched
- Documentation/gpu: Document the situation with unqualified drm-memory-
- drm/amdgpu: Drop unused fence argument from amdgpu_vmid_grab_used
- drm/amdgpu: Use drm_print_memory_stats helper from fdinfo
- drm/amdgpu: Drop impossible condition from amdgpu_job_prepare_job
- drm/amdgpu: Remove the while loop from amdgpu_job_prepare_job
- drm/sched: Optimise drm_sched_entity_push_job
- drm/sched: Stop setting current entity in FIFO mode
- drm/sched: Re-order struct drm_sched_rq members for clarity
- drm/sched: Re-group and rename the entity run-queue lock
- drm/sched: Further optimise drm_sched_entity_push_job
- drm/amd/pm: Vangogh: Fix kernel memory out of bounds write
- drm/amdgpu: Stop reporting special chip memory pools as CPU memory in fdinfo
- drm/amdgpu: Expose special on chip memory pools in fdinfo
- dma-fence: Fix reference leak on fence merge failure path
- dma-fence: Use kernel's sort for merging fences
- workqueue: Do not warn when cancelling WQ_MEM_RECLAIM work from !WQ_MEM_RECLAIM worker
Reviewed (41)
André Almeida
- futex: Use atomic64_inc_return() in get_inode_sequence_number()
- futex: Use atomic64_try_cmpxchg_relaxed() in get_inode_sequence_number()
- mm: shmem: use signed int for version handling in casefold option
Christian Gmeiner
- drm/vc4: Use
vc4_perfmon_find()
- drm/etnaviv: Request pages from DMA32 zone on addressing_limited
- drm/etnaviv: Use unsigned type to count the number of pages
- drm/etnaviv: Use 'unsigned' type to count the number of pages
- drm/etnaviv: Drop the <linux/pm_runtime.h> header
- drm/etnaviv: Fix missing mutex_destroy()
- drm/etnaviv: hold GPU lock across perfmon sampling
- drm/etnaviv: assert GPU lock held in perfmon pipe_*_read functions
- drm/etnaviv: unconditionally enable debug registers
- drm/etnaviv: update hardware headers from rnndb
- drm/etnaviv: take current primitive into account when checking for hung GPU
- drm/etnaviv: always allocate 4K for kernel ringbuffers
- drm/etnaviv: flush shader L1 cache after user commandstream
Iago Toral Quiroga
- drm/v3d: Address race-condition in MMU flush
- drm/v3d: Flush the MMU before we supply more memory to the binner
- drm/v3d: Fix return if scheduler initialization fails
- drm/v3d: Introduce gemfs
- drm/v3d: Reduce the alignment of the node allocation
- drm/v3d: Expose Super Pages capability
- drm/v3d: Enable Performance Counters before clearing them
Jose Maria Casanova Crespo
Juan A. Suarez
Maíra Canal
- drm/v3d: Use v3d_perfmon_find()
- drm/vc4: Run default client setup for all variants.
- drm/vc4: Match drm_dev_enter and exit calls in vc4_hvs_lut_load
- drm/vc4: Match drm_dev_enter and exit calls in vc4_hvs_atomic_flush
- drm/vc4: Correct generation check in vc4_hvs_lut_load
- drm/vkms: Drop unnecessary call to drm_crtc_cleanup()
Tvrtko Ursulin
- drm/gem: Create a drm_gem_object_init_with_mnt() function
- drm/gem: Create shmem GEM object in a given mountpoint
- drm/v3d: Support Big/Super Pages when writing out PTEs
- drm/v3d: Use gemfs/THP in BO creation if available
- drm/v3d: Add modparam for turning off Big/Super Pages
- drm: add DRM_SET_CLIENT_NAME ioctl
- drm: use drm_file client_name in fdinfo
- drm/amdgpu: make drm-memory-* report resident memory
- dma-buf: fix dma_fence_array_signaled v4
- dma-buf: Fix __dma_buf_debugfs_list_del argument for !CONFIG_DEBUG_FS
Tested (1)
Christian Gmeiner
Acked (5)
Changwoo Min
- sched_ext: Rename
scx_bpf_dispatch[_vtime]()
toscx_bpf_dsq_insert[_vtime]()
- sched_ext: Rename
scx_bpf_consume()
toscx_bpf_dsq_move_to_local()
- sched_ext: Rename
scx_bpf_dispatch[_vtime]_from_dsq*()
->scx_bpf_dsq_move[_vtime]*()
Maíra Canal
Maintainer SoB (6)
Maíra Canal
- MAINTAINERS: remove myself as a VKMS maintainer
- MAINTAINERS: Add myself as VKMS Maintainer
- drm/vkms: Add documentation
- drm/vkms: Suppress context imbalance detected by sparse warning
- drm/vkms: Add missing check for CRTC initialization
- drm/v3d: Drop allocation of object without mountpoint
20 Jan 2025 12:00am GMT
18 Jan 2025
planet.freedesktop.org
Simon Ser: Status update, January 2025
Hi all!
FOSDEM is approaching rapidly! I'll be there and will give a talk about modern IRC.
In wlroots land, we've finally merged support for the next-generation screen capture protocols, ext-image-capture-source-v1 and ext-image-copy-capture-v1! Compared to the previous wlroots-specific protocol, the new one provides better damage tracking, enables cursor capture (useful for remote desktop apps) and per-window capture (this part is not yet implemented in wlroots). Thanks to Kirill Primak, wlroots now supports the xdg-toplevel-icon-v1 protocol, useful for clients which want to update their window icon without changing their application ID (either by providing an icon name or pixel buffers). Kirill also added safety assertions everywhere in wlroots to ensure that all listeners are properly removed when a struct is destroyed.
I've revived some old patches to better identify outputs in wlroots and libdisplay-info. Currently, there are two common ways to refer to an output: either by its name (e.g. "DP-2"), or by its make+model+serial (e.g. "Foo Corp C4FE 42424242"). Unfortunately, both of these naming schemes have downsides. The name is ill-suited to configuration files because it's unstable and might change on reboot or unplug (it depends on driver load order, and DP-MST connectors get a new name each time they are re-plugged). The make+model+serial uses a database to look up the human-readable manufacturer name (so database updates break config files), and is not unique enough (different models might share a duplicate string). A new wlr_output.port
field and a libdisplay-info device tag should address these shortcomings.
Jacob McNamee has contributed a Sway patch to add security context properties to IPC, criteria and title format. With this patch, scripts can now figure out whether an application is sandboxed, and a special title can be set for sandboxed (or unsandboxed) apps. There are probably more use-cases we didn't think of!
I've managed to put aside some time to start reviewing the DRM color pipeline patches. As discussed in the last XDC it's in a pretty good shape so I've started dropping some Reviewed-by
tags. While discussing with David Turner about libliftoff, I've realized that the DRM_MODE_PAGE_FLIP_EVENT
flag was missing some documentation (it's not obvious how it interacts with the atomic uAPI) so I've sent a patch to fix that.
I continue pushing small updates to go-imap, bringing it little by little closer to version 2.0. I've added helpers to make it easier for servers to implement the FETCH
command, implemented FETCH BINARY
and header field decoding for SEARCH
in the built-in in-memory server, added limits for the IMAP command size to prevent denial-of-service, and fixed a few bugs. While testing with ImapTest, I've discovered and fixed a bug in Go's mime/quotedprintable
package.
Thanks to pounce, goguma now internally keeps track of message reactions. This is not used just yet, but will be soon once we add a user interface to display and send reactions. Support for deleting messages (called "redact" in the spec) has been merged. I've also implemented a small date indicator which shows up when scrolling in a conversation.
That's all for this month, see you at FOSDEM!
18 Jan 2025 10:00pm GMT
16 Jan 2025
planet.freedesktop.org
Christian Gmeiner: Multiple Render Targets for etnaviv
Modern graphics programming revolves around achieving high-performance rendering and visually stunning effects. Among OpenGL's capabilities, Multiple Render Targets (MRTs) are particularly valuable for enabling advanced rendering techniques with greater efficiency. With the latest release of Mesa 24.03 and the commitment from Igalia, the etnaviv GPU driver now includes support for MRTs. If you've ever wondered how MRTs can transform your graphics pipeline or are curious about the challenges of implementing this feature, this blog post is for you.
16 Jan 2025 12:00am GMT