Накопилось у меня некоторое количество скриншотов GPU-Z, и встал вопрос... Хотя нет, не встал, мне просто захотелось структурировать эти разбросанные абы как данные, тем более с данными GPU Caps Viewer у меня вполне успешно вышло.
Хотя, кое-какой вопрос всё же встал... Вот мой первый набросок правил построения скриншотов GPU-Z, они скопированы из базы GPU Caps Viewer и адаптированы, однако с формированием имени файла пока не всё однозначно:
Так как сейчас не подразумевается сбор подробной информации, было решено упростить имя до минимума, и если подумать, SubVendor следует вынести на первое место, а CRC32 хэш на второе, прямо вот так:
В случае GPU Caps Viewer параметр SubVendor не имел никакого значения, но в случае GPU-Z, как оказалось, это очень важный параметр, ведь чип может быть один, а производители разные.
Ну что, первая попытка, добавил объём памяти в имя, но чего-то всё равно нехватает:
Точно! Нужно обозначить чип! В случае NVIDIA это легко сделать, ведь каждый чип имеет кодовое имя, а вот у AMD вечно всё через задницу сделано...
Вот взять RX 460, там кодовое имя у чипа Baffin, это же кодовое имя носит и RX 560 по данным GPU-Z, а ведь у RX 460 чип имеет 896:56:16 конфигурацию, когда моя RX 560 имела 1024:64:16, и это всё под одним именем, AMD, что с них взять:
Можно попробовать ориентироваться на имена "Polaris", но и тут у AMD всё через задницу сделано, ведь под кодовым именем Polaris 21 целых три разных версии чипа RX 560 существует, и это проблема:
Я не могу просто взять, и как-то отсортировать видеокарты AMD, под одним кодовым именем будет куча разных чипов. Господи, неужели за десятилетия нельзя было как-то нормально промаркировать свои чипы, хоть бы у "зелёного" лагеря скопировали на худой конец...
А потом фанаты AMD удивляются, почему это многие ругают "красную" компанию за кривые драйверы и прочее дерьмо, было бы удивительно если бы не ругали, ибо AMD даже чипы нормально пронумеровать не способна.
Ладно, что толку ворчать, нужно придумать решение для проблемы.
Я не знаю, тут невозможно ничего придумать, у AMD просто нет подходящих данных для грамотной сортировки по чипу... Разве что вбить количество шейдерных ядер, больше особо не за что зацепиться, по крайней мере так выйдет разделить карты под одинаковым именем, но с разными чипами:
Места занимает мало, и сразу понятно с чем имеем дело, а вот с NVIDIA гораздо проще, просто вбиваем кодовое имя чипа:
Хотя постойте, ведь чип важнее производителя... Так гораздо лучше:
Теперь меня устраивает формат имени файла!
Посмотрим, да, сойдёт, в случае NVIDIA используется конкретное кодовое имя ГП, а если такого нет - используется количество шейдерных ядер, так можно и видеокарты Intel сортировать, ведь у них тоже нет точных кодовых имён для каждого чипа:
Прекрасно:
Осталось немного оптимизировать имеющиеся скриншоты:
Думаю никто не будет против небольшого снижения качества, не произведение искусства ведь, а маленькие файлы гораздо проще хранить, чем большие, разумеется оптимизации будут подвергаться только скриншоты, которые действительно выигрывают в размере хотя бы 20%:
Да, появился шум, хотя постойте, есть же WebP формат...
Какая жалость, я забыл добавить варианты конвертации в WebP формат через контекстное меню! Это ужасно!
Ну что тут поделать, иду писать модуль конвертации в формат WebP на скорую руку, ибо я не хочу танцевать с линуксоидским терминалом, колдовать заклинания вручную для выполнения столь элементарных действий как конвертация изображения...
Отлично, нужно будет добавить этот функционал в новую версию моего дистрибутива Chimbalix:
Как не крутите, а WebP гораздо лучше подходит для хранения скриншотов, как я мог про это позабыть, досадно однако, ведь WebP весит всего 23.4 КиБ, а шума меньше, чем у JPEG в качестве 75 весом 45.9 КиБ:
Ещё проверил WebP с качеством 30, и в целом оно на 19% меньше места занимает:
Однако логотип AMD намыливается даже при качестве WebP в 50 единиц:
Похоже нужно будет заново хэш файлов собирать после оптимизации, а значит надо подумать про зону для не оптимизированных скриншотов, чтобы не раздувать репозиторий лишний раз... Пусть такой зоной будет раздел "Обсуждения", все же отправить сообщение со скриншотом гораздо проще, чем клонировать репозиторий, а потом совмещать:
Отлично, теперь даже человек не особо знакомый с GitHub (коммиты там какие-то, мержи, пуллы...) сможет предложить скриншоты для добавления в репозиторий:
Ну а GIF скриншоты было решено преобразовать в PNG, всё же это выгоднее, да и сам формат GIF мне не очень то по душе:
Осталось только преобразовать всё требующее оптимизации и обновить хэши:
Хм, WebP съедает артефакты сжатия JPEG, хотя и портит графику, ну да ладно:
Хотя в случае сильно зашумленных оригиналов, лучше всего выходит сначала почистить нейронной сетью изображение от артефактов JPEG, а после уже в WebP с качеством 50 преобразовать:
Эх, снова новый модуль преобразования изображений идти писать, ибо терминальными заклинаниями много не наколдую вручную:
Ладно, пора бы заканчивать уже это всё дело, а то некогда будет разрабатывать новый функционал для своего дистрибутива Chimbalix:
Так всё и работает в Open-Source, вечно приходится колхозить весь необходимый функционал, ибо имеющийся линуксоидный софт в большинстве случаев просто непригоден для нормального использования без терминального красноглазия.
В процессе сортировки обнаружил, что у меня есть скриншот Mobility Radeon 7500, данных по которой нет в базе TechPowerUp, забавно, ведь наверняка найдутся индивиды, что начнут рассказывать про базу данных TechPowerUp, и что в моём репозитории якобы нет вообще никакого смысла:
Тем более на сайте говорят что у Mobility Radeon 7500 всего 1 ROP и 2 TMU, когда у моей Mobility Radeon 7500 было 2 ROP и 6 TMU, да и чип 2002 года, когда на сайте только за 2001 год.
И да, тут я столкнулся с проблемой, у старых видеокарт может не быть шейдерных ядер в привычном понимании, вот же заноза в заднице... Ладно, пусть будет количество пиксельных конвейеров:
Ещё столкнулся с водяным знаком на одном скриншоте, т.е. он когда-то был взят из интернета, но проблема в том, что поисковые системы (Яндекс, Google) не смогли найти настоящий источник при поиске по изображению:
И тут я подумал, а не ввести ли текстовый файл с таким же именем, как и у скриншота, в который можно было бы дополнительную информацию прописать... И такой файл был введён, ведь в имя вписывать ссылки не следует, а так сойдёт, пришлось конечно постараться, чтобы найти оригинал скриншота, но он всё же был найден:
Так же был обнаружен неприятный нюанс, у GTX TITAN X установлено 12 288 МБ памяти, а у RX 6700 XT вроде те же 12 ГБ, но на самом деле 12 272 МБ, то есть на 16 МБ меньше, чем у TITAN, что было решено сделать? Правильно, указывать объём памяти в мегабайтах:
Это кстати очень странно, куда пропали 16 МБ памяти у Radeon? Ведь 12 ГБ это 12 288 МБ, у NVIDIA всё нормально в этом плане, а вот у AMD RX 6700 XT почему-то 12 272 МБ, т.е. по факту меньше чем 12 ГБ, под какие такие задачи были отгрызены несчастные 16 МБ у "красной" видеокарты?
Кстати, что там хвалёная база данных TechPowerUp показывает? Правильно, округлённые 12 ГБ:
Как посмотреть на сайте фактический объём памяти, а не округлённый? Почему даже AMD указывает не фактический доступный объём памяти, а округлённый в большую сторону? Есть что скрывать? Или может это такой "нюанс" вечно кривых драйверов AMD?
Так много вопросов, но так мало ответов...
Собственно на этом разложил всё что было, правда выглядит оно не очень хорошо, всё в куче... Похоже следует разбить на группы:
Совсем другое дело, осталось только правила подкорректировать в соответствии с выявленными недостатками и принятыми исправлениями:
Ну и конечно загружаем в репозиторий, и любители поязвить - оставьте при себе консольные версии Git, я не хочу красноглазить ковыряясь в командной строке:
Отлично, теперь скриншоты GPU-Z разложены по своим местам, а добавление новых будет простой задачей:
https://github.com/Shedou/Chi-Gallery
На этом пожалуй завершу статью, одной хаотичной папкой стало меньше у меня на диске, и это хорошо.
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
Когда приложение ожидало Windows, а запустили его в Linux...