Мерцание при использовании i3 на Ubuntu с приложением GTK

Вопрос или проблема

Когда я использую приложение GTK, у меня наблюдаются некоторые сильные мигания экрана. Это не происходит, когда:

  • то же приложение, но собранное с помощью QT (например, Transmission QT работает нормально, в то время как Transmission GTK неисправно).
  • когда не используется i3, а стандартный менеджер окон Ubuntu.

heavy

Любая помощь будет приветствоваться.

С i3 выполнение GTK_DEBUG=geometry transmission-gt выдает

libEGL warning: не удалось получить имя драйвера для fd -1

libEGL warning: MESA-LOADER: не удалось получить информацию о устройстве

libEGL warning: не удалось получить имя драйвера для fd -1

Кажется, когда мигание происходит, GDB_DEBUG выводит

[0x55cee28f2970] GtkScrollbar   ширина для высоты: -1 минимальная 6 и естественная: 6 (кэш использован: да)
[0x55cee28ef880] GtkScrollbar   высота для ширины: -1 минимальная 6 и естественная: 6 (кэш использован: да)

Информация для отладки:

lsb-release -a
Нет доступных модулей LSB.
Идентификатор дистрибьютора: Ubuntu
Описание:    Ubuntu 24.04.1 LTS
Версия:    24.04
Кодовое имя:   noble

sudo lshw -c video           
  *-display                 
       описание: VGA совместимый контроллер
       продукт: Raptor Lake-P [Iris Xe Graphics]
       производитель: Intel Corporation
       физический ID: 2
       информация о шине: pci@0000:00:02.0
       логическое имя: /dev/fb0
       версия: 04
       ширина: 64 бита
       частота: 33MHz
       возможности: pciexpress msi pm vga_controller bus_master cap_list rom fb
       конфигурация: depth=32 driver=i915 latency=0 mode=1920x1200 resolution=1920,1200 visual=truecolor xres=1920 yres=1200
       ресурсы: iomemory:600-5ff iomemory:400-3ff irq:198 память:603c000000-603cffffff память:4000000000-400fffffff ioport:2000(size=64) память:c0000-dffff память:4010000000-4016ffffff память:4020000000-40ffffffff

lspci -v 

00:00.0 Host bridge: Intel Corporation Raptor Lake-P 6p+8e cores Host Bridge/DRAM Controller
    Подсистема: Lenovo Устройство 2315
    Флаги: мастер шины, быстрое определение устройства, задержка 0
    Возможности: <доступ запрещен>

00:02.0 VGA совместимый контроллер: Intel Corporation Raptor Lake-P [Iris Xe Graphics] (rev 04) (prog-if 00 [VGA контроллер])
    Подсистема: Lenovo Raptor Lake-P [Iris Xe Graphics]
    Флаги: мастер шины, быстрое определение устройства, задержка 0, IRQ 198
    Память на 603c000000 (64-бит, без предварительной выборки) [размер=16M]
    Память на 4000000000 (64-бит, с предварительной выборкой) [размер=256M]
    I/O порты на 2000 [размер=64]
    Расширяемая ROM на 000c0000 [виртуальная] [отключена] [размер=128K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: i915
    Ядровые модули: i915

00:04.0 Контроллер обработки сигналов: Intel Corporation Raptor Lake Dynamic Platform and Thermal Framework Processor Participant
    Подсистема: Lenovo Raptor Lake Dynamic Platform and Thermal Framework Processor Participant
    Флаги: мастер шины, быстрое определение устройства, задержка 0, IRQ 181
    Память на 603d180000 (64-бит, без предварительной выборки) [размер=128K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: proc_thermal_pci
    Ядровые модули: processor_thermal_device_pci

00:06.0 PCI мост: Intel Corporation Raptor Lake PCIe 4.0 Graphics Port (prog-if 00 [Обычное декодирование])
    Подсистема: Lenovo Raptor Lake PCIe 4.0 Graphics Port
    Флаги: мастер шины, быстрое определение устройства, задержка 0, IRQ 122
    Шина: primary=00, secondary=04, subordinate=04, sec-latency=0
    I/O за мостом: [отключено] [16-бит]
    Память за мостом: bc200000-bc2fffff [размер=1M] [32-бит]
    Память с предварительной выборкой за мостом: [отключено] [64-бит]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: pcieport

00:07.0 PCI мост: Intel Corporation Raptor Lake-P Thunderbolt 4 PCI Express Root Port #0 (prog-if 00 [Обычное декодирование])
    Подсистема: Lenovo Raptor Lake-P Thunderbolt 4 PCI Express Root Port
    Флаги: мастер шины, быстрое определение устройства, задержка 0, IRQ 123
    Шина: primary=00, secondary=20, subordinate=49, sec-latency=0
    I/O за мостом: 3000-3fff [размер=4K] [16-бит]
    Память за мостом: b0000000-bc1fffff [размер=194M] [32-бит]
    Память с предварительной выборкой за мостом: 6000000000-601bffffff [размер=448M] [32-бит]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: pcieport

00:07.2 PCI мост: Intel Corporation Raptor Lake-P Thunderbolt 4 PCI Express Root Port #2 (prog-if 00 [Обычное декодирование])
    Подсистема: Lenovo Raptor Lake-P Thunderbolt 4 PCI Express Root Port
    Флаги: мастер шины, быстрое определение устройства, задержка 0, IRQ 124
    Шина: primary=00, secondary=50, subordinate=79, sec-latency=0
    I/O за мостом: 4000-4fff [размер=4K] [16-бит]
    Память за мостом: a2000000-ae1fffff [размер=194M] [32-бит]
    Память с предварительной выборкой за мостом: 6020000000-603bffffff [размер=448M] [32-бит]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: pcieport

00:08.0 Системный периферийный устройство: Intel Corporation GNA Scoring Accelerator module
    Подсистема: Lenovo GNA Scoring Accelerator module
    Флаги: быстрое определение устройства, IRQ 255
    Память на 603d1e2000 (64-бит, без предварительной выборки) [отключена] [размер=4K]
    Возможности: <доступ запрещен>

00:0a.0 Контроллер обработки сигналов: Intel Corporation Raptor Lake Crashlog and Telemetry (rev 01)
    Подсистема: Lenovo Raptor Lake Crashlog and Telemetry
    Флаги: быстрое определение устройства
    Память на 603d1c0000 (64-бит, без предварительной выборки) [размер=32K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: intel_vsec
    Ядровые модули: intel_vsec

00:0d.0 USB контроллер: Intel Corporation Raptor Lake-P Thunderbolt 4 USB Controller (prog-if 30 [XHCI])
    Подсистема: Lenovo Raptor Lake-P Thunderbolt 4 USB Controller
    Флаги: мастер шины, среднее определение устройства, задержка 0, IRQ 141
    Память на 603d1b0000 (64-бит, без предварительной выборки) [размер=64K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: xhci_hcd
    Ядровые модули: xhci_pci

00:0d.2 USB контроллер: Intel Corporation Raptor Lake-P Thunderbolt 4 NHI #0 (prog-if 40 [USB4 Host Interface])
    Подсистема: Lenovo Raptor Lake-P Thunderbolt 4 NHI
    Флаги: мастер шины, быстрое определение устройства, задержка 0, IRQ 16
    Память на 603d140000 (64-бит, без предварительной выборки) [размер=256K]
    Память на 603d1e1000 (64-бит, без предварительной выборки) [размер=4K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: thunderbolt
    Ядровые модули: thunderbolt

00:0d.3 USB контроллер: Intel Corporation Raptor Lake-P Thunderbolt 4 NHI #1 (prog-if 40 [USB4 Host Interface])
    Подсистема: Lenovo Raptor Lake-P Thunderbolt 4 NHI
    Флаги: мастер шины, быстрое определение устройства, задержка 0, IRQ 16
    Память на 603d100000 (64-бит, без предварительной выборки) [размер=256K]
    Память на 603d1e0000 (64-бит, без предварительной выборки) [размер=4K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: thunderbolt
    Ядровые модули: thunderbolt

00:14.0 USB контроллер: Intel Corporation Alder Lake PCH USB 3.2 xHCI Host Controller (rev 01) (prog-if 30 [XHCI])
    Подсистема: Lenovo Alder Lake PCH USB 3.2 xHCI Host Controller
    Флаги: мастер шины, среднее определение устройства, задержка 0, IRQ 142
    Память на 603d1a0000 (64-бит, без предварительной выборки) [размер=64K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: xhci_hcd
    Ядровые модули: xhci_pci

00:14.2 RAM память: Intel Corporation Alder Lake PCH Shared SRAM (rev 01)
    Подсистема: Lenovo Alder Lake PCH Shared SRAM
    Флаги: быстрое определение устройства
    Память на 603d1d8000 (64-бит, без предварительной выборки) [отключена] [размер=16K]
    Память на 603d1df000 (64-бит, без предварительной выборки) [отключена] [размер=4K]
    Возможности: <доступ запрещен>

00:14.3 Контроллер сети: Intel Corporation Raptor Lake PCH CNVi WiFi (rev 01)
    Подсистема: Intel Corporation Raptor Lake PCH CNVi WiFi
    Флаги: мастер шины, быстрое определение устройства, задержка 0, IRQ 16
    Память на 603d1d4000 (64-бит, без предварительной выборки) [размер=16K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: iwlwifi
    Ядровые модули: iwlwifi

00:15.0 Контроллер последовательной шины: Intel Corporation Alder Lake PCH Serial IO I2C Controller #0 (rev 01)
    Подсистема: Lenovo Alder Lake PCH Serial IO I2C Controller
    Флаги: мастер шины, быстрое определение устройства, задержка 0, IRQ 27
    Память на 4017000000 (64-бит, без предварительной выборки) [размер=4K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: intel-lpss
    Ядровые модули: intel_lpss_pci

00:16.0 Контроллер связи: Intel Corporation Alder Lake PCH HECI Controller (rev 01)
    Подсистема: Lenovo Alder Lake PCH HECI Controller
    Флаги: мастер шины, быстрое определение устройства, задержка 0, IRQ 180
    Память на 603d1dd000 (64-бит, без предварительной выборки) [размер=4K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: mei_me
    Ядровые модули: mei_me

00:16.3 Последовательный контроллер: Intel Corporation Alder Lake AMT SOL Redirection (rev 01) (prog-if 02 [16550])
    Подсистема: Lenovo Alder Lake AMT SOL Redirection
    Флаги: 66MHz, быстрое определение устройства, IRQ 19
    I/O порты на 2060 [размер=8]
    Память на bc301000 (32-бит, без предварительной выборки) [размер=4K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: serial

00:1f.0 ISA мост: Intel Corporation Raptor Lake LPC/eSPI Controller (rev 01)
    Подсистема: Lenovo Raptor Lake LPC/eSPI Controller
    Флаги: мастер шины, быстрое определение устройства, задержка 0

00:1f.3 Аудиоустройство: Intel Corporation Raptor Lake-P/U/H cAVS (rev 01) (prog-if 80)
    Подсистема: Lenovo Raptor Lake-P/U/H cAVS
    Флаги: мастер шины, быстрое определение устройства, задержка 64, IRQ 199
    Память на 603d1d0000 (64-бит, без предварительной выборки) [размер=16K]
    Память на 603d000000 (64-бит, без предварительной выборки) [размер=1M]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: sof-audio-pci-intel-tgl
    Ядровые модули: snd_hda_intel, snd_sof_pci_intel_tgl

00:1f.4 SMBus: Intel Corporation Alder Lake PCH-P SMBus Host Controller (rev 01)
    Подсистема: Lenovo Alder Lake PCH-P SMBus Host Controller
    Флаги: среднее определение устройства, IRQ 16
    Память на 603d1dc000 (64-бит, без предварительной выборки) [размер=256]
    I/O порты на efa0 [размер=32]
    Драйвер ядра в использовании: i801_smbus
    Ядровые модули: i2c_i801

00:1f.5 Контроллер последовательной шины: Intel Corporation Alder Lake-P PCH SPI Controller (rev 01)
    Подсистема: Lenovo Alder Lake-P PCH SPI Controller
    Флаги: быстрое определение устройства
    Память на a0800000 (32-бит, без предварительной выборки) [размер=4K]
    Драйвер ядра в использовании: intel-spi
    Ядровые модули: spi_intel_pci

04:00.0 Контроллер энергонезависимой памяти: Samsung Electronics Co Ltd NVMe SSD Controller PM9A1/PM9A3/980PRO (prog-if 02 [NVM Express])
    Подсистема: Samsung Electronics Co Ltd SSD 980 PRO
    Флаги: мастер шины, быстрое определение устройства, задержка 0, IRQ 16
    Память на bc200000 (64-бит, без предварительной выборки) [размер=16K]
    Возможности: <доступ запрещен>
    Драйвер ядра в использовании: nvme
    Ядровые модули: nvme

Любая помощь будет приветствоваться

Ответ или решение

Проблема мерцания, возникающая при использовании GTK-приложений в оконном менеджере i3 на Ubuntu, может быть вызвана несколькими факторами, включая настройки графического драйвера, конфигурации окна и свойства самого GTK. В данном ответе мы рассмотрим основные причины проблемы и предложим решения, которые помогут вам избавиться от мерцания и улучшить работу ваших приложений.

1. Анализ проблемы

Первоначально, ваше наблюдение о том, что мерцание появляется только в GTK-приложениях и не наблюдается в приложениях на QT, а также при использовании стандартного оконного менеджера, указывает на возможные проблемы с совместимостью библиотек GTK и управления окнами в i3.

Вывод ошибок libEGL:
Системные сообщения, которые вы привели, подсказывают, что библиотеки графического вывода (libEGL) не могут получить информацию о драйвере. Это может быть связано с проблемами установки или конфигурации драйвера графики, что, в свою очередь, может влиять на рендеринг окон в GTK.

2. Настройки драйвера и конфигурация графической системы

Вы используете графический контроллер Intel Iris Xe и драйвер i915. Важно убедиться, что у вас установлены последние версии драйверов.

  1. Обновление системы и драйвера графики:
    Убедитесь, что ваша система обновлена, и у вас установлены последние версии встроенных драйверов.

    sudo apt update
    sudo apt upgrade
  2. Проверка конфигурации X11:
    В некоторых случаях конфигурация X11 может требовать модификаций. Откройте или создайте файл /etc/X11/xorg.conf.d/20-intel.conf и добавьте следующее:

    Section "Device"
       Identifier "Intel Graphics"
       Driver "intel"
       Option "TearFree" "true"
    EndSection

    Обратите внимание, что опция TearFree может помочь уменьшить мерцание.

3. Конфигурация GTK

Убедитесь, что настройки GTK корректны и соответствуют вашим требованиям.

  1. Проверка переменной окружения:
    Попробуйте запустить приложение с переменной окружения, которая отключает использование compositing (композитинга):

    GTK_CSD=0 transmission-gtk

4. Проверка настройки i3

Некоторые настройки i3 могут повлиять на рендеринг окон. Проверьте ваш конфигурационный файл i3 (обычно ~/.config/i3/config) на наличие настроек, касающихся управления окнами и поведения композиторной среды.

  1. Запуск композитора:
    Убедитесь, что композитор, такой как picom, запущен. Это поможет улучшить качество рендеринга окон:

    picom --config ~/.config/picom/picom.conf &

5. Заключение

Проблемы с мерцанием в GTK-приложениях под управлением i3 могут быть устранены благодаря обновлению драйверов, оптимизации конфигурации графической системы и настроек GTK. Небольшие изменения в конфигурации системы могут значительно улучшить вашу работу с графическими интерфейсами. Если указанные шаги не помогают, возможно, стоит обратиться к сообществу или форумам поддержки для более глубокого анализа вашей конкретной конфигурации системы.

Оцените материал
Добавить комментарий

Капча загружается...