Почему команды cvt и gtf дают разные значения частоты?

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

Я пытаюсь настроить режим xrandr для X-дисплея, но при попытке найти соответствующие параметры я заметил два разных расчетных программы (см. ниже).

Почему разница в значениях?

Какой набор мне использовать для дисплея, не являющегося CRT?

 $ gtf 1600 1200 60
        # 1600x1200 @ 60.00 Hz (GTF) hsync: 74.52 kHz; pclk: 160.96 MHz
        Modeline "1600x1200_60.00"  160.96  1600 1704 1880 2160  1200 1201 1204 1242  -HSync +Vsync

 $  cvt 1600 1200 60
 # 1600x1200 59.87 Hz (CVT 1.92M3) hsync: 74.54 kHz; pclk: 161.00 MHz
 Modeline "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync

Перед использованием CVT или GTF попробуйте позволить X произвести расчет самостоятельно. Создание конфигурационного файла для предоставления моделей – это анахронизм. Учитывая правильные характеристики дисплея, которые обычно предоставляет EDID, X превосходно справляется с генерацией необходимых моделей. С тех пор как 16 лет назад Xorg отделился от XFree86 и используя много разных аппаратных средств с Linux, я еще не нашел ни одной аппаратной комбинации, где CVT или GTF работали бы лучше, чем сервер, учитывая правильные характеристики дисплея. Эти две спецификации могут быть указаны через HorizSync и VertRefresh в секции “Monitor” в файле /etc/X11/xorg.con*, когда EDID оказывается недостаточным для их предоставления.

Как заметил Хилтон для Debian 12, за последние несколько лет текущие дистрибутивы начали преобразовывать /etc/X11/xorg.conf в необязательный файл, а /etc/X11/xorg.conf.d/ в необязательную директорию. Теперь рекомендованный способ настройки конфигурации X, если это необходимо или желаемо, заключается в том, чтобы создать все необходимое в /etc/X11/xorg.conf.d/.

Section "Monitor"
    Identifier "DefaultMonitor"
    HorizSync   30-115
    VertRefresh 50-160
EndSection

Сохраните вышеуказанное как /etc/X11/xorg.conf.d/50-monitor.conf, после изменения HorizSync и VertRefresh на правильные значения в соответствии со спецификациями вашего дисплея, и попробуйте. По идее, по крайней мере, это должно делать то, что вам нужно, но некоторые аппаратные комбинации просто не будут хорошо работать вместе. Иногда заявленные характеристики на самом деле не поддерживаются. Экраны с супершироким соотношением сторон являются одними из самых проблемных.

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

Команды cvt и gtf являются утилитами для генерации параметров модулей для видеорежимов, но они используют разные алгоритмы вычисления частот и настроек, что может приводить к различиям в их выводах.

Причины различий в значениях

Основное различие между cvt и gtf заключается в методах, которыми они вычисляют значения.

  1. Генерация строк модуля:

    • GTF (Generalized Timing Formula): Основывается на формуле, предложенной в виде стандартов VESA и принимает во внимание различные параметры, такие как частота обновления, горизонтальная и вертикальная разрешающая способность. GTF был разработан для более точного контроля временных характеристик.
    • CVT (Coordinated Video Timings): Это усовершенствованное решение, которое учитывает различные нестандартные разрешения и адаптируется к современным дисплеям. CVT также использует формулы, но они отличаются от GTF, что и приводит к различиям в расчете.
  2. Степень округления:

    • Утилиты могут округлять значения по-разному, что тоже может повлиять на итоговые частоты, такие как pclk (частота пикселей) и hsync.

В вашем случае наблюдаются следующие различия:

  • Для GTF: Частота пикселей составляет 160.96 МГц, а горизонтальная синхронизация – 74.52 кГц.
  • Для CVT: Частота пикселей — 161.00 МГц, а горизонтальная синхронизация — 74.54 кГц.

Разница в частоте пикселей незначительна, но может восприниматься разными дисплеями по-разному.

Какую утилиту использовать для ненастольного дисплея?

Если у вас есть ненастольный дисплей (например, ЖК или LED), рекомендуется использовать параметры, полученные с помощью команды cvt. Основной причиной этого является то, что CVT более актуален для современных технологий отображения, которые могут лучше справляться с предоставленными параметрами.

Заключение:

Для настройки режима отображения, особенно для современных дисплеев, вы можете сначала попробовать использовать возможности автоматической настройки X-сервера в соответствии с командой xrandr. Если это не дает нужного результата, используйте cvt для создания нового модуля. Убедитесь, что предоставлены правильные значения HorizSync и VertRefresh в конфигурационном файле, которые могут помочь X-серверу в автоматической генерации подходящих режимов.

Итак, несмотря на то что обе утилиты могут предоставлять приемлемые параметры, cvt может оказаться более надежным выбором для современных ненастольных дисплеев.

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

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