Opened 7 months ago

Closed 7 months ago

Last modified 6 months ago

#20336 closed enhancement (fixed)

gtk4-4.16.0

Reported by: Xi Ruoyao Owned by: Bruce Dubbs
Priority: normal Milestone: 12.3
Component: BOOK Version: git
Severity: normal Keywords:
Cc:

Description

New minor version.

Change History (9)

comment:1 by Xi Ruoyao, 7 months ago

The upstream has switched the default from GL to Vulkan on Wayland. And to enable the Vulkan support (removing -D vulkan=disabled) we need glslc. As other google packages, building it makes a headache...

curl https://github.com/google/shaderc/archive/v2024.1/shaderc-2024.1.tar.gz -LO

tar xf shaderc-2024.1.tar.gz
cd shaderc-2024.1

# Allow building with system spirv-tools and glslang
# Copied from Gentoo: https://gitweb.gentoo.org/repo/gentoo.git/tree/media-libs/shaderc/shaderc-2024.1-r1.ebuild
sed '/build-version/d'   -i glslc/CMakeLists.txt
sed '/third_party/d'     -i CMakeLists.txt
sed 's|SPIRV|glslang/&|' -i libshaderc_util/src/compiler.cc

# The lines: shaderc version, spirv-tools version, and glslang version
cat > glslc/src/build-version.inc << EOF
"2024.1"
"1.2.290.0"
"14.3.0"
EOF

mkdir build
cd    build

cmake -D CMAKE_INSTALL_PREFIX=/usr \
      -D CMAKE_BUILD_TYPE=Release  \
      -D SHADERC_SKIP_TESTS=ON     \
      -G Ninja ..
ninja

# "ninja install" installs some libraries (including two static libraries)
# and I don't like them.  Just install the glslc program.
sudo install -vm755 glslc/glslc /usr/bin

comment:2 by Xi Ruoyao, 7 months ago

When I run GTK-4 apps with gtk-4.16.0 + Vulkan, the Intel Vulkan driver complains something like

MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:763: FINISHME: support YUV colorspace with DRM format modifiers
MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:794: FINISHME: support more multi-planar formats with DRM modifiers

but nevertheless they seem running fine.

comment:3 by Bruce Dubbs, 7 months ago

Owner: changed from blfs-book to Bruce Dubbs
Status: newassigned

in reply to:  2 ; comment:4 by Bruce Dubbs, 7 months ago

Replying to Xi Ruoyao:

When I run GTK-4 apps with gtk-4.16.0 + Vulkan, the Intel Vulkan driver complains something like

MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:763: FINISHME: support YUV colorspace with DRM format modifiers
MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:794: FINISHME: support more multi-planar formats with DRM modifiers

but nevertheless they seem running fine.

What version of mesa are you running? A grep of the mesa 24.2.2 only shows the YUV message in docs/relnotes/24.2.0.rst and no hits for the multi-planar message.

in reply to:  4 comment:5 by Xi Ruoyao, 7 months ago

Replying to Bruce Dubbs:

Replying to Xi Ruoyao:

When I run GTK-4 apps with gtk-4.16.0 + Vulkan, the Intel Vulkan driver complains something like

MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:763: FINISHME: support YUV colorspace with DRM format modifiers
MESA-INTEL: warning: ../src/intel/vulkan/anv_formats.c:794: FINISHME: support more multi-planar formats with DRM modifiers

but nevertheless they seem running fine.

What version of mesa are you running? A grep of the mesa 24.2.2 only shows the YUV message in docs/relnotes/24.2.0.rst and no hits for the multi-planar message.

24.2.2.

When doing a grep we have to remove the FINISHME: part because the actual code is like:

anv_finishme("support YUV colorspace with DRM format modifiers");

i.e. the FINISHME: prefix is added by anv_finishme(). And the message gives where the message is: ../src/intel/vulkan/anv_formats.c:763. Here .. is the mesa source dir because we are building with meson setup ${OPTIONS} ...

I've not seen any negative effect so far despite these warnings.

comment:6 by Bruce Dubbs, 7 months ago

Looking at the code, those are the only two anv_finishme() calls in that file. We could comment them out.

anv_finishme() is a macro in src/intel/vulkan/anv_private.h. It looks like a developer only type of message. We could effectively change that to a no-op if we want.

in reply to:  6 comment:7 by Xi Ruoyao, 7 months ago

Replying to Bruce Dubbs:

Looking at the code, those are the only two anv_finishme() calls in that file. We could comment them out.

anv_finishme() is a macro in src/intel/vulkan/anv_private.h. It looks like a developer only type of message. We could effectively change that to a no-op if we want.

It's easier to suppress them with MESA_LOG_FILE=/dev/null at runtime.

comment:8 by Bruce Dubbs, 7 months ago

Resolution: fixed
Status: assignedclosed

Fixed at commit 964682d806.

comment:9 by Douglas R. Reno, 6 months ago

Release notes

4.15.1

Overview of Changes in 4.15.1, 21-05-2024
=========================================

* GtkGraphicsOffload:
 - Don't crash without a child

* GtkSpinner:
 - Don't animate when unmapped

* CSS:
 - Support the :root selector
 - Support variables and custom properties (https://www.w3.org/TR/css-variables-1/)
 - Implement math functions (https://www.w3.org/TR/css-values-4/)
 - Support modern syntax and calc in rgb() and hsl()

* Icontheme:
 - Make symbolic svg loading more efficient
 - Handle color-free symbolics more efficiently

* Accessibility:
 - Make the gtk-demo sidebar search more accessible
 - Stop emitting focus events
 - Realize child contexts when necessary

* GDK:
 - Support XDG_ACTIVATION_TOKEN
 - dmabuf: Be more defensive when importing unknown formats to GL
 - dmabuf: Use narrow range for YUV
 - vulkan: Recreate swapchains when necessary or beneficial

* GSK:
 - Improve logging for GDK_DEBUG=offload
 - Improve logging for GSK_DEBUG=renderer
 - gpu: Warn about inefficient texture import
 - gpu: Handle tiny offscreens correctly
 - vulkan: Add profiler marks in various places
 - vulkan: Fix a problem with imported dmabufs showing up black
 - cairo: Speed up mask nodes, since we use them for symbolic icons

* Wayland:
 - Use wl_compositor version 6

* X11:
 - Implement a missing method

* Build:
 - Fix many ubsan warnings

* Debugging:
 - Show more texture details in the recorder
 - Use GTK_DEBUG=css to see CSS deprecations

* macOS:
 - Fix problems with events handed back to the OS
 - Respect GDK_DEBUG=default-settings
 - Allow applictions to handle Dock > Quit

* Deprecations:
 - Use of @name colors in CSS

* Translation updates:

4.15.2

Overview of Changes in 4.15.2, 28-06-2024
=========================================

* GtkFileChooserWidget:
 - Plug some memory leaks
 - Make Ctrl-Shift-N create a new folder

* GtkPopover:
 - Handle resizing and position changes better

* CSS:
 - Support color(), oklab(), etc (https://www.w3.org/TR/css-color-4/)
 - Support color-mix() (https://www.w3.org/TR/css-color-5/)
 - Support relative colors (https://www.w3.org/TR/css-color-5/)
 - Support more colorspaces in color()
 - Allow percentages for opacity
 - Handle currentcolor more correctly

* Accessibility:
 - Avoid markup when reading labels

* GSK:
 - Subset fonts when serializing node trees
 - Make ngl export render_texture results as dmabufs

* Wayland:
 - Use xdg-dialog protocol for attached dialogs

* Windows:
 - Build with UNICODE

* macOS:
 - Implement fullscreen-on-monitor

* Documentation:
 - Widget shortcuts and actions are now described in the docs

* Debugging:
 - Add GTK_DEBUG=css for warning about deprecated css syntax

* Tools:
 - rendernode-tool: Add an extract command for data urls

* Deprecations:
 - CSS Color functions shade(), lighter(), darker(), alpha(), mix()

* Translation updates:

4.15.3

Overview of Changes in 4.15.3, 29-06-2024
=========================================

* Accessibility:
 - Only emit notifications when cursor positions change in GtkText
 - Fix handling of help text properties

* CSS:
 - Fix some crashes introduced in recent currentcolor changes

* DND:
 - Avoid a critical

* Documentation:
 - Fix many oversights and missing docs

* maxOS:
 - Add native keyboard shortcuts

4.15.4

Overview of Changes in 4.15.4, 30-07-2024
=========================================

* GtkPopover:
 - Fix size allocation with wrapping labels

* GtkColumnView:
 - Check column visibility when measuring

* CSS:
 - Fix fallout from recent changes
 - Make implementation of currentcolor inheritance match browsers

* Gdk:
 - Introduce GdkColorState for encoding color space information
   Currently, we support srgb, srgb-linear, rec2100-pq and rec2100-linear
 - Add color states to GdkTexture, as well as to the texture builder
   and downloader objects, and convert as necessary
 - Add GdkMemoryTextureBuilder
 - Attach color states when loading or saving textures
 - Add GdkCicpParams to create color state objects for cicp tuples
 - Drop GDK_DEBUG=vulkan-validate
   Use VK_INSTEANCE_LAYERS=VK_LAYER_KHRONOS_validation instead

* Gsk:
 - Improve caching of glyphs and textures
 - Remove the uber shader
 - Numerous bug fixes
 - Fix corner cases in offload handling
 - Implement occlusion culling for opaque content
 - Allow offloading (some) transformed textures
 - Take colorstate into account when compositing
 - Add GDK_DEBUG=linear to opt into linear compositing
 - Implement tiling for large textures
 - Stop using descriptors and go back to simpler texture
   management that should work better with older GL
 - Use correct shader clip mode for glyphs
 - Improve shadow rendering

* Media:
 - Attach color states to textures obtained from gstreamer

* Wayland:
 - Allow offloading GL textures via dmabuf export
 - Suppot the xx-color-management-v4 protocol

* Deprecations:
 - GskGLShader and the render node

* Tools:
 - Improve the rendernode tool extract command
 - Add an image tool that is about manipulating textures

* Build:
 - GTK now requires a C11 compiler

* Translation updates

4.15.5

Overview of Changes in 4.15.5, 11-08-2024
=========================================

* GtkTextView:
 - ADd GtkTextBufferCommitNotify

* CSS:
 - Propagate color state information to GSK for many features:
   colors, borders, shadows, text

* Gdk:
 - Fix an fd leak in the Vulkan code
 - Fix a leak of EGLSurfaces and DMA buffers
 - Set the opaque region of surfaces automatically based on their content

* Gsk:
 - Fix Emoji rendering in Vulkan
 - Rework color handling to take color states into account
 - Implement more powerful occlusion culling
 - Minimize our use of renderpasses

* Macos:
 - Fix window transparency

* Debugging:
 - The inspector shows details about color states

* Deprecations:
 - gdk_draw_context_begin/end_frame
 - gdk_surface_set_opaque_region

* Build:
 - Require gstreamer 1.24

* Translation updates

4.15.6

Overview of Changes in 4.15.6, 08-26-2024
=========================================

* GtkCheckButton:
 - Add a grouped style class for radio buttons

* GtkScale:
 - Fix alignment and positioning problems

* Css:
 - Fix crashes in the variable support

* Gsk:
 - Make graphics offloading work better with kwin
 - Make colorstate transfer functions more robust
 - GC dead textures more agressively
 - Only use a single render pass per frame

* GL:
 - Round damage rectangles properly
 - Use the shared context when creating textures
 - Fix a file descriptor leak in dmabuf export

* Vulkan:
 - Round damage rectangles properly

* Wayland:
 - Work with the kwin implementation of xx-color-management-v4

* Windows:
 - Make gtk_show_uri use SHOpenWithDialog()
 - Enable incremental rendering with WGL

* Macos:
 - Open context menus on Ctrl-left click

* Debugging:
 - Show color state information in the inspector
 - Collect input event traces in the recorder
 - Add shortcuts for toggling recording: Super-r
   and for screenshots: Super-c
 - Split the GDK_DEBUG env var into GDK_DEBUG and GDK_DISABLE
 - Add GDK_DISABLE=color-mgmt and GDK_DISABLE=offload

* Tools:
 - Add a 'Paste as node' action in gtk4-node-editor

* Translations updates

4.16.0

Overview of Changes in 4.16.0, 09-06-2024
=========================================

Note: This release changes the default GSK renderer to be Vulkan,
on Wayland. Other platforms still use ngl. The intent of this change
is to use the best available platform APIs. You can still override
the renderer choice using the GSK_RENDERER environment variable.

We believe that most of the problems reported with the new renderers
during the 4.13 and 4.15 development cycles have been addressed by now.

But the new renderers and dmabuf support are using graphics drivers
in different ways than the old gl renderer, and trigger new driver bugs.
Therefore, it is recommended to use the latest mesa release (24.2)
with the new renderers.

* GtkScale:
 - Fix positioning of scale values

* GtkEmojiChooser:
 - Make Control-clicks work for the recent section

* GtkPopover:
 - Make sure focus lands on the right widget when cascading

* GtkSpinButton:
 - Disable Emoji input for numeric spin buttons

* GtkSingleSelection:
 - Implement unselect_all

* Accssibility:
 - Fix roles for radio buttons
 - Check if ATs are listening before exporting trees
 - Add a check for sandboxed accessibility bus
 - Fix handling of the error message relation
 - Turn criticals into debug messages
 - Set expanded states properly in menus

* CSS:
 - Fix a few issues on bigendian systems
 - Avoid a crash with relative colors

* GSK:
 - Use the right GL context when exporting textures
 - Don't let colors influence depth decisions
 - Allow uploading of mipmap levels when tiling textures

* GDK:
 - Update keysyms from libX11 1.8.10
 - Implement cpu-side mipmapping
 - Use a thread pool for color conversions and mipmapping

* Vulkan:
 - Fix drag surface offsets

* Wayland:
 - Fix a crash
 - Associate EGL windows with context later

* X11:
 - Fix initial EGL context creation
 - Fix a problem with GL context creation

* Broadway:
 - Implement compute_size and request_layout

* MacOS:
 - Set transparent backgroiund for toplevel windows

* Windows:
 - Improve debug output
 - Detect Mesas d3d12 driver and request GDI compat

* Demos:
 - Set window icons in demos
 - Add a 64k x 64k image to the image scaling demo

* Translation updates
Note: See TracTickets for help on using tickets.