О практических проблемах больших разрешений на большой частоте. Лыдыбр: Я недавно сделал себе небольшой апгрейд и у меня появился монитор 4k@144Hz. Разумеется, на 144Hz он с пол-пинка не заработал. И с пачкой ноутбуков и  USB-C кабелей тоже. Потому что нюансы. Мне пришлось в это нырнуть глубже, чем хотелось бы...Моя старая видеокарта на компьютере сумела завести его на 4k @ 60Hz с помощью Display Port. (Либо 2k @ 144Hz). Я попытался воткнуть в монитор ноутбук (все 5 шт, какие нашлись у меня и знакомых) и обнаружил, что всё настолько сложно, что мне потребовалось несколько заходов чтения спецификации, пока я "это завёл". Выписываю свои наблюдения и эксперименты. Актуальность -  первая половина 2022 года. Монитор under study: Gigabyte M32U, хотя, в принципе, это не существенно для обсуждаемого вопроса. У монитора в наличии разъёмы HDMI, DisplayPort (2 шт), USB-C. При том, что с десктопом моя проблема решилась "просто обновлением железа", я решил разобраться с проблемой поглубже, чтобы знать. Разбирать проблему я буду слоями. Начём с физики и кабелей. 4k (3840х2160) на частоте 144Hz при глубине 1 байт на цвет (24 бита на пиксел) требует минимум 28665446400 бит в секунду (3840*2160*3*8*144), то есть около 30 гигабит/с, и это не считая накладных расходов кодирования (либо 8/10, либо 128/130), звукового потока, USB для подключения периферии и т.д. Любые кабели, в которых проходит меньше, нам не подойдут. Точнее, если мы сожмём передаваемый сигнал, то сможем "пролезть" в 20Гбит, но наше первое предположение: 20 гигабит - маловато. Про компрессию - см раздел в конце.Поскольку ситуация очень плохая, то мы также будем рассматривать как допустимые и 120Hz вместо 144Гц,  то есть 23 Гбит/с. Какие кабели могут нам столько дать (мы не смотрим на протоколы) HDMI 2.0 кабель даёт 18.0 Gbit/s. Такой кабель больше 90Гц не может. Названия кабелей (которые не годятся): Standard HDMI Cable, High Speed HDMI, Premium High Speed HDMI HDMI 2.1 имеет подмножество кабелей с условным называнием Ultra High Speed HDMI Cable  (UHS), которые умеют 48 Gbit/s. Другие название - Category 3 HDMI, HDMI 8k, HDMI 48G. Display Port кабели старых поколений: RBR (reduced bit rate), HBR, HBR2 (High Bitrate). Другие названия: Standard DisplayPort Cable, Full HD.  High Bitrate 3 (HBR3) умеет 32.4 Gbit/s. До 120Гц. (144Гц в режиме компрессии). Другие названия: DP4k. UHBR 10, 13.5 и 20 (Ultra High Bit Rate) Пришёл с display port 2.0. Даёт  40-80 Gbit/s. Наши родные 144Гц без выкрутасов. Альтернативное название: DP8k. USB-C кабель USB3 - даже близко нет. USB-C кабель USB4. Куча кабелей разной скорости, все (кроме того, что ниже не подходят)  USB4 Gen 2×1, USB4 Gen 2×2 (?), USB4 Gen 3×1. USB-C кабель  USB4 Gen 3×2. В него проходит 40 Гбит. Обратите внимание, все остальные кабели USB4 не годятся (я не уверен про USB4 Gen 2x2, там всего лишь 20Гбит/с, что может быть, хватит  для 120Гц с компрессией) Thunderbolt 3 кабель является прародителем USB4, и по скорости 40Gbit/s должен работать, но ...я не знаю, работает он или нет. Сам TB3 обещает DP 1.2, который всего лишь "(3840 × 2160) at 120 Hz". Терпимо. Thunderbolt 4 кабель точно работает, потому что 40Gbit/s, и в стандарте есть DP 2.0. Заметим, я совсем не трогал вопрос с power delivery == PD (не путать с DP == Display Port), это отдельная ортогональная задача. Хотя кабель, который по USB-C делает PD - это мечта для подключения ноутбука. Воткнул один кабель - и готовая док-станция. Однако, по стандарту Thunderbolt 4, power delivery может быть всего 18Вт. Как я обнаружил, многие ноутбуки с питанием работают по схеме "всё или ничего", то есть от 18Вт не заряжаются даже в sleep. Редким исключением являются макбуки. Но это всё оффтопик - мы-то 4k@144 хотим... Итог: Всё, что не в  списке выше, будет или не работать, или будет работать странно (пропадающий сигнал), или будет работать на маленьких частотах (< 100Hz). Таким образом, в общем случае, USB-C кабель без маркировки - вероятнее всего, не подойдёт. Лыдыбр. С учётом цены правильных кабелей очевидно, что все usb-c кабели в моём хозяйстве, купленном под телефоны, оказались совершенно далеки от мира 'USB4 Gen 3x2', что объяснило большинсто моих неудач вначале. Наблюдение за кабелями в магазинах. Найти правильный DP кабель легко. Найти правильный HDMI кабель ... относительно легко. А вот USB-C - вот тут вот безумие. Во-первых, как было сказано выше, USB-C бывает кучи версий. Многие - USB3, т.е. для передачи сигнала видео совсем не подходят. Даже если вы найдёте USB4 кабель, то их огромное число и большая часть из них не подходит. Официальное название нужного кабеля - "Gen 3x2", удачи вам пробиться через магазинные поисковики с таким. А большая часть того, что найдено - 0.8м, потому что это максимальная длина пассивного кабеля, насколько я понял. Кабель большей длины - нужны чипы в кабеле, что резко повышает цену и сужает ассортимент. Причём я говорю не про Али (где в описании кобелей собачье безумство), а про многие благородные магазины, и Амазон, и computeruniverse, и локальные компьютерные магазины Кипра. Наверное, с этим не лучше и в других магазинах. С огромным скрипом я нашёл правильные названия, и их цена... Впечатлила. В результате я остановился на активном сертифицированном Thunderbolt 4 кабеле за €50. Это слегка оверкилл, но зато точно всё в наличии и всё хорошо. Не-оверкилл с слегка более скромными спецификациями рядом был за €38, плюс €18 доставка... Но! Этот кабель заработал. Я увидел честные 4k @ 144Hz на одном-единственном ноутбуке из всех доступных. С кабелями разобрались. Дальше идут протоколы. У нас есть выбор из двух: HDMI и DP, но всё осложняется тем, что оба из них могут оказаться внутри USB-C кабеля. В спецификации сказано, что: HDMI 1.4 :  4k @ 30Hz. HDMI 2.0:  4k @ 60 Hz HDMI 2.1:  4k @ 120 Hz. А как же 144 Hz? А никак. Упс... Таким образом, HDMI, даже в самом bleeding edge режиме (по состоянию на 22 год) не может показать желаемое. Хотя, 120Гц, в целом, почти достаточно. Таким образом, для "едва-едва" нам нужен HDMI 2.1 и не ниже. На 2.0 мы получим "обычные 60Гц", а "старый HDMI" нам покажет 30-герцовый кошмарик. При том, что кабель способен, стандарт не осилил. Лыдыбр: что, собственно и оказалось в переходнике USB-C -> HDMI, который у меня был. Внутри HDMI 1.4. Enjoy your 30 out of 144. P.S. Оказалось, что всё сложнее и у HDMI 2.1 есть разновдиности. См комментарии. Display Port куда более продвинутая технология: Display Port 1.0, режим "HBR":  4k @ 30Hz. Display Port 1.2, режим "HBR2":  4k @ 75 Hz (внезапно!) Display Port 1.3, режим "HBR3":  4k @ 120Hz (почти...) Display Port 1.4, режим "HBR3   4k @ 120Hz, но есть DSC или YCrBr 4:2:0, которые, теоретически должны дать 144 Hz... Display Port 2.0, режим UBHR10: 4k @ 144Hz, UBR20: 4k @ 240Hz. Даже перелёт. Итого, Display port в версии 1.3 такой же "едва", как HDMI 2.1. Версия 1.4a минимально подходит, а версия 2.0  - это то, что нам нужно. Сам Thunderbolt нас не касается, но он поддерживает некоторые интересные режимы, касающиеся видео. В Thunderbolt 3 может быть три режима работы интерфейса: DP (это не display port!), SP и LP. Какой достанется вам - загадка. Главное, внутри там может быть Display Port 1.2 или Display Port 1.4. Комбинация поддержки со стороны кабеля и со стороны хоста - получается чистая лотерея. В контексте 4k@120Hz я бы на работоспособность Thunderbolt 3 портов не надеялся. Thunderbolt 4 резко улучшил ситуацию: мы уже можем быть точно уверены в Display Port 1.4, и, может быть, получим Display Port 2.0 в alt-mode. Я специально назвал этот раздел неправильно (потому что это не протокол, а разъём), потому что всё, что USB-C - это безумие. Если TB3/4 имеет явную маркировку, то с USB-C - катастрофа. Я считаю, что usb-c кабель давно надо переменовать в 'a cable', чтобы фраза звучала так: 'a monitor is connected to a computer using a cable'. Или так: 'this device uses a cable'. Потому что у USB, помимо самого USB, есть так называемый 'alt mode', который позволяет пропускать по кабелю аналоговый звук, Display Port, Hdmi, чёрта в ступе и даже USB. Несмотря на все свои поиски я не нашёл USB4 Gen 3x2 нигде, т.к. для "ценителей" есть TB с простыми версиями. Из безумства выше нас интересуют следующие протоколы: DisplayPort HDMI Теоретически, там ещё есть MHL для сотовых телефонов, но я не хочу идти по этой дорожке. Вопрос: а что реализовано внутри монитора? Либо USB4, и тогда там DP 2.0 (ура!), либо HDMI 2.1 (увы!), либо там TB, и на самом деле там чёрт в ступе (DP от 1.2 до 2.0). Может быть так, что там реализованы оба протокола, а решает видеокарта? Спецификация моего монитора говорит: HDMI 2.1 (support 4K 144Hz 4:4:4 @ DSC enabled or 4K 144Hz 4:2:0) x2Display port 1.4 (DSC) x1USB Type-C x1 Это то, что нам обещает производитель. Про содержимое USB Type-C ни слова. Это, хотя бы, USB4? После практического эксперимента, мой ноутбук сказал, что монитор через USB-C - это DP-0. Значит, Display Port. Я не знаю метода понять, какой вариант используется - alt mode или родной протокол. Но из спецификации монитора  до покупки  понять, что внутри USB-С будет DP невозможно. Хост, это то, что делает сигнал. Дискретная видеокарта, ноутбук или активный переходник. С ноутбуками (для которых USB-C и задуман) выяснить, что именно он умеет, становится почти невозможно. В описании одного из ноутбуков написано: * Thunderbolt 4/USB-C 4.0 Gen3×2 (DisplayPort 1.a: yes, Power Delivery: yes*) * USB-C 3.2 Gen2×2 Скажите, что такое DisplayPort 1.a? Между 1.2a и 1.4a находится граница между успехом и безнадёжностью... Хотя обещали Thunderbolt 4, и он должен быть DisplayPort 2.0... И сразу понятно, что второй USB-C порт нам полностью не подходит, потому что он 3.2 (а не 4).... Когда ко мне таки приехал сертифицированный Thunderbolt 4 кабель, выяснилось, что внутри ноутбука какая-то халтура и монитор с ним 144 Hz получает (ура!) но теряет его почти сразу же. Так что dp оказался действительно "1.a". Вот, другой ноутбук: One USB 3.0 (Type-C) portThunderbolt 3 (USB Type-C) portOne HDMI 2.0 portOne Mini DisplayPort 1.2 А у Thunderbolt 3 по спецификации DP может гулять от 1.2 до 1.4. Впрочем, рядом упомянут mini-DP 1.2, так что внутри там будет, вероятнее всего, DP 1.2, то есть "ничего больше 75 Hz не светит". А вот третий: Ports(2) Intel® Thunderbolt™ 3 (Type-C)(2) USB 3.1 Gen 1 (Type A)(1) HDMI 2.0 Опять Thunderbolt 3 без уточнения что внутри. Получается, по бумаге вообще невозможно понять, будет оно работать или нет. Боль? Боль! Хотя с сертифицированным TB4 кабелем он таки выдал честные 144 Hz. К сожалению, это не мой ноутбук, он на винде, так что понять что именно там в выводе xrandr невозможно, ибо Винда. Может быть, это DP 1.4? Интел обещает это в некоторых процессорах/встроенных видеокартах. Монитор говорит, что это USB-C вход, а что там внутри - шут его знает. Но, можем ли мы что-то определить про версию протокола в кабеле из линукса? Вообще, мой look-n-feel в отношении кабелей в Linux оставил неприятное ощущение "ничерта не понятно", но это до момента, пока я не посмотрел как те же проблемы выглядят в Windows. Если в Linux трудно ответить "почему в настройках монитора нет такого режима", то в Windows невозможно даже посмотреть список всех режимов монитора, да и режим подключения монитора (через USB-C) не понятен. Это DP или HDMI? В Linux это обнаруживается по типу дисплея в xrandr - HDMI-0 vs DP-0. Ещё я обнаружил, что nvidia-settings может чуть-чуть расказать про Display Port. Откуда она его берёт я так и не понял, даже из strace. Fun fact: HBR2 должен дать мне 4k@75hz. Ограничение 4k@60Hz - это ограничение чипа на моей старой видеокарте. Моя старая видеокарта показала 60-Гц лимит (на практике и в спеках):  Maximum DP resolution:	4096 x 2160 @ 60 Hz Maximum DVI resolution:	2560 x 1600 Maximum HDMI resolution:	4096 x 2160 @ 24 Hz or 3840 x 2160 @ 30 Hz Ну старьё, старьё, надо обновлять. Берём килограмм денег, приносим продавцу и обнаруживаем что... Вот так вот. Из трёх вендоров только самый задохлик умеет DP 2.0. Остальные ютятся в категории, которую мы забраковали или почти забраковали. Монитор умеет, видеокарты - нет. С другой стороны, нас ждёт волшебный YCbCr420 и DSC... Но про это ниже. А пока получается, что в этом скудном режиме надо либо тормознуться на 120Hz (вместо 144Hz), либо надеяться, что DSC (компрессия) реально незаметна. AMD обещает RDNA3 где-то там в марте 2022 года, а сейчас уже апрель заканчивается... Казалось бы, надо брать Arc, но он только в нотубуках,  но мы и без помощи arc увидели 144 Hz у нотубука. А дискретной версии Arc нет. На выходе победил баланс разума с пошедшими вниз ценами, и я стал обладателем скромной RX 6600 (без всяких "XT") за скромные же €350. Плюс €28 доставка. Кипр, блин. Но с ценой я ждал-ждал и дождался. Три месяца назад эта же скромность мне бы обошлась в €500, а пол-года назад - в €750. Видеокарта приехала, xrand -r 144 и всё стало хорошо, быстро и ловко. Просто DP8k  кабель (я не знаю какой из UHBR'ов). Как оно пролезло в DP 1.4, да ещё и в 10 бит (если верить xrandr --verbose), я не понимаю. Видимо, DSC. Где смотреть  состояние DSC я пока не нашёл. Пока я ждал видеокарту, я решил выжать невозможное из своего железа и попробовать нестандартные подходы. Многие из них не заработали, но PBP получился. Есть такое извращение - PBP. Когда монитор делит экран на две половинки и каждая половинка показывает картинку со своего источника сигнала. В общем случае монитор можно подключить к двум компьютерам и смотреть с них обоих, но частный случай состоит в подключении монитора двумя кабелями к одному компьютеру Казалось бы, ура. Но моя (старая) видеокарта в таком режиме работать не любит, и даёт только 60Hz. Более того, HDMI в этом режиме совсем бесится и даёт только такое:  1920x2160     59.93*+ 1280x1024     75.02    60.02 1280x960      60.00 ...Т.е. теоретическая возможность есть, но на практике: 1) На Nvidia не работает по причине фашизма в драйверах. 2) На Intel (ноутбуке) работает, но требует два провода для подключения и нетривиальных манипуляций в настройках монитора и xrandr, что крайне далеко от 'plug and play'. После долгого медитативного чтения я нашёл информацию, что Nvidia можно "уговорить" не фокусироваться на EDID'е (данных, которые отдаёт монитор). У меня заработала такая конструкция: (`/etc/X11/xorg.conf.d/nvidia.conf`) После этого я сумел сделать невозможное - заставил HDMI (старый-престарый HDMI, который едва-едва умеет 4k@30Hz), сделать вот это "половинное" разрешение заработать на 75Hz. DP тоже согласился. DP может и больше, но у моей старой-престарой видеокарты только один DP, так что мне пришлось его ограничить тоже на 75Hz. На выходе получилось 4k@75Hz и фантастическая ерунда в текстововой консоли при загрузке (когда видеосигнал повторяется дважды на левую и правую половину экрана). Надо сказать, что 75Гц - это предел. Даже 76 не принимаются. xrandr при этом справедливо считает, что это два монитора и транслирует это в window manager. После чего у нас панель задач только на одной половинке экрана, а окна "липнут" к середине, как обычно липнут к краям. И окно логина в половинке экрана, и перепрыгивает между левой-правой половинками, в зависимости от положения курсора мыши. Интернеты подсказали, что xrandr'у можно сказать, что "два output'а - это один monitor". Но, как оказалось, у абстракции 'monitor' нет никаких последствий. Так что мимо. На всякий случай, вот мой скрипт конфигурации PBP для DP-1 и HDMI-0: Итог: 75Гц и бешенные окна, которые даже толком в fullscreen не развернуть? Я записал себе победу над спецификациями и здравым смыслом, но этот пост писался в обычном DP-режиме (4k@60Hz). DSC в Display Port обещает компрессию сигнала и возможность пропихнуть 144 Hz через DP 1.4. К сожалению, моя старая видеокарта  не умела такого. Второе предложение - понижение качества картинки за счёт другого sub-sampling. В иксах sub-sampling настраивается в конфиге (не xrandr). В конфиг выше надо дописать: Только вот YCbCr444 не даёт эффекта по уменьшению используемой полосы. Для этого надо YCbCr420. А на это моя видеокарта говорит, что 'unsupported mode'. Хотя, наверное, на более новом устройстве будет лучше. На новой RX 6600, я не нашёл как узнать, что именно включено, что у меня через DP 1.4 пролазит 144Hz... Более того, мне обещали, что DSC будет не заметен, но комбинация redshift и 144Hz начала давать на экране очень странные артефакты. Чаще всего их почти невидно, но в те моменты, когда они появляются, возникает ощущение "это у меня глюки или на экране?", потому что артефакты подозрительно напоминают хроматические абберации от очков на контрастных паттернах. Зачем мне 144Hz? Особенно, на 4K? Разумеется, не для игрушек. Я начинал с 13" EGA. После нескольких итераций CRT превратился в LCD.  По мере того, как росли дюймы экрана я не мог отделаться от ощущения, что раньше всё было быстрее (или, как сейчас я могу уточнить, "плавнее"). Я долго думал про эту проблему и понял, что она объективная, и не связанная с гигагерцами или bloatware на компьютере. Если у нас 60 кадров в секунду, то чем больше (физически) экран, тем больше сантиметров проходит между двумя соседними кадрами при движении чего-либо по экрану. А с переходом на 4k - и в пикселях тоже. Это приводит к дёрганной картинке в самых простых бытовых задачах - редактировании текста, движение окон, скроллинге, время реакции на печатать. То есть я сделал себе 4k@144 ... для офисной работы. Комфортной офисной работы. И абсолютно, ни секунды не жалею. Переход с старого процессора на новый был приятным, и субъективно я бы сказал, что компьютер стал раза в полтора быстрее и перестал тормозить. Субъективно, конечно. Вот это субъективное ощущение "всё тормозит" на 60Гц больших экранов вне зависимости от скорости железа и даже скорости софта, именно оно прошло после перехода на 144Гц. Наверное, разница 120-144 не ощутима, но разница 60 -> 120+ - это лучшее, что можно сделать для повышения комфорта работы на компьютере. Буквально за несколько дней до публикации (пока я прилизывал текст и исправлял ошибки) вышла новость, что AMD сертифицировала первый чип на DisplayPort 2.0, причём только на самый медленный  из UBHR-кабелей.  Забанен за упоминание войны. Больше не на хабре.