Opened 13 months ago
Closed 13 months ago
#19464 closed enhancement (fixed)
gtk4-4.14.1
Reported by: | Xi Ruoyao | Owned by: | Rahul Chandra |
---|---|---|---|
Priority: | normal | Milestone: | 12.2 |
Component: | BOOK | Version: | git |
Severity: | normal | Keywords: | |
Cc: |
Description (last modified by ) ¶
New minor version.
Now 4.14.1
Change History (10)
comment:1 by , 13 months ago
comment:2 by , 13 months ago
4.13.5:
This release adds two new GSK renderers called vulkan and ngl, that are built from the same sources. The new renderers can handle many corner cases correctly that the current gl renderer does not handle, and they offer advantages such as antialiasing and supersampled gradients.
The new renderers are still considered experimental, and GTK will only use them if they are explicitly selected using the GSK_RENDERER environment variable.
As part of this work, the GSK include files have been rearranged. It is no longer necessary to include renderer-specific headers for ngl and vulkan (and doing so will trigger deprecation warnings), and their constructors are always available.
The previously available experimental GdkVulkanContext APIs and the old Vulkan renderer have been removed.
Vulkan is now enabled by default, and Linux distributions should build GTK with Vulkan support. This requires the glslc shader compiler as a new dependency.
Vulkan is now also used for dmabuf support.
- GtkDropdown:
- Fix display of initial selection
- GtkShortcutsWindow:
- Make the window adapt to smaller screen widths
- GtkTextView:
- Fix a possible NULL dereference in history
- GDK:
- Make the png loader safer against overflows
- GL:
- Fix some errors in handling of texture formats and mipmaps
4.13.4:
- GtkFileDialog:
- Return an error if no file is selected
- GtkFileLauncher:
- Add a writable property
- GtkFileChooserNative:
- Make closing portal file dialogs work
- GtkEmojiChooser:
- Update Emoji data to CLDR v43
- GtkStringList:
- Add item-type and n-itmes properties
- Input:
- Respect GTK grabs on DND events
- Fix crossing event generation for enter/leave
- Wayland:
- Avoid recreating wl_buffers needlessly
- Be more careful when loading cursors
- Dmabuf:
- Add support for all Dmabuf formats
- Tweak the offload code a bit, allow offloading translucent textures, as long as they are raised. Decline to offload with fractional scales.
- Accessibility:
- Add a few more accessible roles
- GL:
- Use GLES by default
- Tweak GDK_DEBUG values. The new values are gl-disable-gl, gl-disable-gles and gl-prefer-gl. The gl-legacy and nograbs values have been dropped.
- Css:
- Reduce memory consumption during theme loading
- Fix opacity handling
- Theme:
- Refresh some of the included symbolic icons
- MacOs:
- Silence secure-restore message
- Build:
- Require Vulkan 1.3
- Translation updates
4.13.3:
- GtkGraphicsOffload: A new widget to support passthrough of dmabuf textures with subsurfaces on Wayland
- GtkListView:
- reduce tree indentation
- GtkInspector:
- Show more GL information
- Add a subsurface overlay
- Improve the fps overlay
- GDK
- Allow implicit modifiers for dmabufs
- Support more dmabuf formats: NV16, NV61, NV24, NV42 and 3-plane YUV formats
- GSK
- Fix padding of icons in the GL atlas
- Fix handling of texture-scale nodes in cairo
- Treat texture-scale nodes more faithfully in GL
- Accessibility:
- Tweak the accessible name computation for corner cases
- The GTK/GDK/GSK_DEBUG environment variables now work in productions as well as in debug builds
- Translation updates
4.13.2:
- GtkPrintdialog:
- New async-style api to replace GtkPrintOperation
- GtkEmojiChooser:
- Add more languages: Bengali, Hindi, Japanese, Finnish, Thai and Norwegian bokmål
- Accessibility:
- Fix some utf8 handling issues
- GDK:
- Add support for dmabuf textures, with GdkDmabufTextureBuilder
- Add a few more supported memory formats for textures
- GSK:
- Add a fast-path for masking color
- Add support for importing dmabuf textures
- Handle GLES better by using some extensions
- Translation updates
4.13.1:
- GtkTooltip:
- Don't cross native boundaries when looking for tooltips
- GtkCenterLayout, GtkEntry, GtkSearchEntry:
- Fix some issues with baseline handling
- GtkColorButton, GtkFontButton:
- Propagate focus-on-click
- GtkFileChooser:
- Make "Visit file" scroll to the file
- GtkSwitch:
- Respect text direction
- GtkWindow:
- Don't assume titlebars are GtkHeaderBars
- Printing:
- Fix some problems with the portal implementation
- Add a new simple print API: GtkPrintDialog
- Paths:
- GskPathMeasure performance has been improved
- Add custom contours for circles, rounded rectangles and rectangles
- Simplify GskPathPoint handling
- gsk_path_point_get_closest_point now returns the distance as well
- Make GskPathBuilder simplify curves
- Input:
- Handle (some) single-key compose sequences
- Fix active state tracking with sensitivity changes and grabs
- GSK:
- Make the repeated gradients match between GL and cairo
- Make rounded rect shrinking match between Vulkan, GL and cairo
- Fix parsing of text nodes with color glyphs
- Restrict an optimization to the cases where it is crrect
- Fix rendering of shadows with opacity
- The Vulkan renderer now requires Vulkan 1.2
- GL: Transition gradients unpremultiplied
- GL: Fix clipping of shadows
- GL: Some optimizations
- Broadway: Fix memory leaks in the renderer
- Wayland:
- Make activation more reliable
- macOS:
- Clamp damage regions to the surface size
- Tools:
- gtk4-path-tool gained restrict and reverse commands
- gtk4-path-tool show and render can show control points
- Demos:
- Add a demo for hit testing with paths
- Build:
- Fix build problems with C++ compilers
- Deprecations:
- gtk_window_present_with_time
- Translation updates
4.13.0:
- GskPath, GskPathBuilder, GskPathMeasure: Data types and APIs for path rendering. These APIs are still considered experimental, and may change until 4.14. Please try them out and give us feedback. Documentation can be found here: https://docs.gtk.org/gsk4/paths.html
- GtkGridView:
- Fix a crash when scrolling
- GtkColumnView:
- Fix a refcounting issue in the new scroll_to api
- GtkTreeView
- Fix style classes for sort arrows
- GtkEntry:
- Improve tracking of user changes (for undo)
- GtkNotebook:
- Fix a critical when switching pages
- GtkColor/FontDialogButton:
- Make these widgets activatable
- GtkMenuButton:
- Fix problems with focus handling
- Fix problems with DND
- Make flags a settable property
- GtkShortcutsWindow:
- Add API to build shortcuts windows programmatically
- Printing
- Fix the cpdb backend build
- MacOS:
- Make file filters work again
- GSK:
- Fix issues with color matrix nodes
- Wayland:
- Fix a crash with compositors other than gnome-shell
- Deprecations:
- Remaining GtkTreeModel-related types
- Demos:
- Add a few path demos to gtk4-demo
- Tools:
- gtk4-path-tool provides a commandline interface for paths
- Translation updates:
comment:3 by , 13 months ago
I'm not sure if we should enable Vulkan as upstream suggests. It will require glslc and it seems not very useful as at now because it's not enabled by default at runtime due to some minor issues (https://gitlab.gnome.org/GNOME/gtk/-/issues/6537).
It's enabled by default at build time though so if we don't want it we'll need -Dvulkan=disabled
.
comment:4 by , 13 months ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:5 by , 13 months ago
I'll disable it, but we should look back at this when the time comes for 4.16
comment:6 by , 13 months ago
Overview of Changes in 4.14.1, xx-xx-xxxx =========================================
- GtkTextView:
- Fix a mixup of cursor and anchor when retrieving surrounding text in input methods
- Printing:
- Avoid accessing freed printers
- Accessibility:
- Fix memory leaks
- GDK:
- Rename the GDK_VULKAN_SKIP environment variable to GDK_VULKAN_DISABLE
- Add a GDK_GL_DISABLE environment variable
- GSK:
- Rename the GSK_GPU_SKIP environment variable to GSK_GPU_DISABLE
- Speed up handling of repeated ops, which should help for text
- Speed up the inner loop of text node conversion
- Drop the glyph-align optimization flag
- ngl: Avoid reusing frames while they are in use
- Fix flickering thumbnails in nautilus
- Speed up buffer handling in both ngl and Vulkan
- Demos:
- Skip demos using gl shaders when we're not using the gl renderer
- Build:
- Fix some ubsan warnings
- Avoid zink in ci since it spams stderr
- Translation updates: Czech German Korean Russian
comment:7 by , 13 months ago
Description: | modified (diff) |
---|---|
Summary: | gtk4-4.14.0 → gtk4-4.14.1 |
comment:8 by , 13 months ago
I got a relatively high 81 failures on the tests. Although it seems to have run over 4000 tests instead of the 1000 it usually runs? I ran it on Plasma 6 wayland.
comment:10 by , 13 months ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
4.14.0:
Note: The new renderers and dmabuf support are using graphics drivers in different ways than the old gl renderer, and trigger new driver bugs, (see for example https://gitlab.gnome.org/GNOME/gtk/-/issues/6418 and https://gitlab.gnome.org/GNOME/gtk/-/issues/6388). Therefore, it is recommended to use the latest mesa release (24.x) with the new renderers.
4.13.9:
4.13.8:
4.13.7:
4.13.6:
This release changes the ngl renderer to be the default renderer.
The intent of this change is to get wider testing and verify that the new renderers are production-ready. If significant problems show up, we will revert this change for 4.14.
You can still override the renderer choice using the GSK_RENDERER environment variable.
Since ngl can handle fractional scaling much better than the old gl renderer, we allow fractional scaling by default with gl now. If you are using the old gl renderer (e.g. because your system is limited to GLES2), you can disable fractional scaling by setting the GDK_DEBUG environment variable to include the gl-no-fractional key.