Кастомные драйвера что это
Первым "жирным голубем", повышающим производительность в играх за счет некоторого ухудшения графики, была технология DLSS. Она помогала первым картам серии RTX "переваривать" "священные лучи Хуанга", которые очень значительно снижали производительность даже топовых карт семейства Тьюринг. И работала она исключительно на картах серии RTX.
реклама
Но, спустя некоторое время, компания AMD выпускает свой ответ: технологию FSR, которая не требовала для работы наличия тензорных ядер и работала на всех видеокартах.
Оставалось дело за малым - расторопностью игроделов. В свое время я тестировал эту технологию в игре Terminator Resistance. И ее работа мне понравилась, хотя конкретно в этой игре для моей видеокарты была бесполезной.
MSI RTX 3070 сливают дешевле любой другой, это за копейки Дешевая 3070 Gigabyte Gaming - успей пока не началосьИ вот теперь "родной дядя Хуанг" обрадовал нас новостью: все обладатели более-менее современных видеокарт от NVidia, имеют возможность получить аналог FSR во всех играх.
Достаточно только скачать драйвер 496.76.Основы были заложены уже давно, когда в драйвере появилась функция масштабирования изображения и повышения резкости с настройкой зернистости (тот самый шарп).
реклама
var firedYa28 = false; window.addEventListener('load', () => < if(navigator.userAgent.indexOf("Chrome-Lighthouse") < window.yaContextCb.push(()=>< Ya.Context.AdvManager.render(< renderTo: 'yandex_rtb_R-A-630193-28', blockId: 'R-A-630193-28' >) >) >, 3000); > > >);Ну и, так как, GTX 1070 уже давно звезд с небес не хватает, то стоит проверить, что данная функция даст с точки зрения производительности.
Процессор i7-8700t (рабочие частоты 3800-3900 МГц)
Оперативная память: 16 Гб, таковая частота 2666 МГц (14-16-16-32 cr1)
реклама
Материнская плата: AsRock B360 Fatality Gaming K4
Видеокарта: EVGA GTX 1070 FTW
Операционная система: Windows 10 LTSC
реклама
Тестирование на драйвере 496.76 было приостановлено по двум причинам: просто безобразная работа с изображением и выход хот фикса 496.84, который как раз и должен был решит некоторые проблемы.
Мысли по началу были просто грандиозными: куча игр, где можно проверить работу масштабирования. Но. реальность оказалась гораздо суровее.
Для начала некоторое введение в работу данной технологии применительно к разрешению 1080р.
После установки драйвера нам надо на главной странице панели управления NVidia выбрать функцию масштабирования изображения. По умолчанию резкость стоит на уровне 50%,но для каждой игры его можно выставить индивидуально.
Также стоит поставить галочку на функции "индикатор в оверлее". Это очень полезная функция, как выяснилось далее.
При активации масштабирования, в разрешении 1080р нам становятся доступны новые разрешения, которые появятся в меню игр: 1632х918, 1477х831, 1280х720, 1129х635.
По идее, это аналогично уровням качества в настройке FSR от AMD.
Теперь об индикаторе масштабирования. При работе только резкости изображения, в левом верхнем углу экрана появляется синяя надпись NIS, при задействовании технологии масштабирования надпись становится зеленой. Мелочь, но она показывает, работает функция или нет.
Подробнее про работу данной технологии написано на сайте NVidia .
Для начала я попробовал работу данной технологии в игре Horizon Zero Dawn. Но она отказывалась работать. Работает только резкость. При изменении разрешения на 1632х918 просто уменьшается разрешение, но масштабирование не работает.
Далее идем в Shadow of the Tomb Raider. Тут масштабирование сработало. Но вот результат меня вообще не удовлетворил.
Настройки игры максимальные, сглаживание ТАА.
Для начала - работа при отключенном масштабировании в разрешении 1920х1080:
Теперь выбираем разрешение наиболее приближенное к модифицированному - 1600х900:
Все выглядит логично: снижение разрешения делает картинку более расплывчатой, но повышает фпс.
Теперь включаем масштабируемость в драйвере. Резкость стоит по умолчанию на 50%. В игре выставляем разрешение 1632х918. NIS горит зеленым, значит масштабируемость работает (но на скриншотах не отображается):
К сожалению, скриншоты до конца не передают качество картинок. Ухудшение изображения заметно, но фпс вырос. Посчитаем процент прироста: 10%, не густо.
Для более подробного сравнения скриншотов отправляемся сюда: SOTTR.
Следующей игрой будет Immortals Fenyx Rising.
Настройки игры кастомные: высокие, кроме текстур (очень высокие), отключено размытие.
Применение масштабирования (1632х918, 50% резкости):
Совсем не впечатляет, а прирост жалкие 5%.
Переходим к игре на движке Cry Engine - Sniper Ghost Warrior Contracts 2.
1920х1080, настройки максимальные Fidelity CAS отключена:
Настройки графики те же, разрешение 1600х900:
18% прироста производительности. И опять мое мнение, которое в полной мере не подтверждается скриншотами: в этой игре работа масштабирования (из протестированных игр) самая лучшая.
Теперь сравним технологию от NVidia лоб в лоб с конкурентом - FSR. В качестве тестовой площадки выступает игра Terminator Resistance.
Сначала нативное разрешение 1920х1080, настройки графики максимальные:
Теперь с FSR с пресетом Ultra Quality (1477х831):
Пресет Quality (1280х720):
Отключаем технологию FSR и задействуем модификатор разрешения:
Разницу в изображении ищите сами. А вот с приростом фпс. АМД дает нам 36% в ультра качестве. НВидиа - почти 9%.
Да, разрешения разные, но особой разницы в изображении я не вижу. Уж точно не в пользу технологии НВидиа. А прирост ничтожный.
Что по итогу? Вывод мой сугубо субъективный.
Технология от NVidia крайне сырая. Я точно также могу в старом драйвере снизить разрешение до 1600х900 и выкрутить желаемый уровень резкости, настроив попутно уровень зернистости.
Пока мой личный "рейтинг" технологий повышения производительности такой:
DLSS (сужу чисто по видео и скриншотам), немного от нее отстает более простая, но "народная" FSR и в конце списка, припадая на обе ноги, плетется новинка от NVidia.
Уровень сложности: для продвинутых. Если вы хотите стать продвинутым пользователем операционной системы Android, то рано или поздно столкнётесь с необходимостью установки стороннего рекавери. Только с его помощью вы сможете выполнить такие столь необходимые операции, как создание резервных копий, установка системных обновлений или перепрошивка своего устройства другой версией операционной системы (ROM). В этой статье вы узнаете о том, как установить альтернативное recovery на примере Clockworkmod Recovery.
Прежде всего нужно знать, что каждое мобильное устройство под управлением Android имеет режим восстановления или, как его ещё называют, «recovery». Однако стандартный его вариант имеет, как правило, очень узкий перечень возможностей, которые сводятся только к сбросу к заводским настройкам и установке обновлений системы. Продвинутых пользователей такой вариант не устраивает, поэтому они устанавливают специально написанные альтернативные recovery, которые обладают куда более обширным списком функций. Одним из самых популярных проектов подобного рода является Clockworkmod Recovery (CWM) и именно он будет рассмотрен в этой статье.
Итак, с помощью Clockworkmod Recovery вы сможете:
- устанавливать неофициальные прошивки;
- устанавливать обновления, дополнения и фиксы операционной системы;
- подключаться к ПК по USB в режиме съёмного накопителя
- создать полные резервные копии всей прошивки или отдельных её частей;
- восстановить данные из ранее созданных резервных копий;
- подключиться к ПК по USB в режиме ADB
- сбрасывать состояние устройства полностью к первоначальному состоянию или просто очищать данные кеша и приложений;
- очищать статистику работы аккумулятора;
- форматировать и создавать разделы на карте памяти.
Это далеко не полный список всех функций альтернативного рекавери, а только перечисление самых необходимых и востребованных возможностей. Как видите, устанавливать рекавери есть ради чего, так что давайте рассмотрим, как это сделать.
Вообще, способов установки Clockworkmod Recovery есть несколько, и их выбор зависит от используемого вами устройства. В этой статье мы рассмотрим два из них. Первый очень простой, и он подойдёт для самых популярных брендовых устройств, второй чуть посложнее, зато охватывает более широкий круг гаджетов.
Установка CWM с помощью Rom Manager
Этот способ состоит в использовании специальной утилиты, которая предельно упрощает процедуру прошивки нового рекавери. Она выпущена создателями CWM и доступна для бесплатной загрузки в каталоге приложений Google Play. Обратите внимание, что для использования Rom Manager вам понадобятся права суперпользователя. Что это такое и как их получить, вы можете прочитать в этой статье.
После установки и запуска программы Rom Manager перед вами появится окно, разделённое на несколько секций. Нас интересует раздел под названием «Режим Recovery». Нажмите в нём на ссылку «Recovery Setup», после чего в новом окне тапните по строке «ClockworkMod Recovery».
Теперь вам необходимо подтвердить модель своего устройства, прикоснувшись к его названию в списке. Далее придётся ещё раз подтвердить своё намерение и только после этого начнётся загрузка необходимых файлов, о чём вам ясно даст понять появившаяся полоска прогресса. По её окончанию программа попросит предоставить ей права суперпользователя и наконец-то установит вам CWM. Проверить это можно, вернувшись на первый экран Rom Manager и перезагрузившись непосредственно в рекавери с помощью кнопки «Загрузить режим Recovery».
Как видите, ничего сложного. Стоит однако помнить, что данная утилита поддерживает ограниченный круг устройств. Поэтому перед её использованием обязательно посетите тему форума, посвящённого вашему гаджету и проверьте его совместимость с Rom Manager.
Многие считают что самому создать драйвер для Windows это что-то на грани фантастики. Но на самом деле это не так. Конечно, разработка драйвера для какого-то навороченного девайса бывает не простой задачей. Но ведь тоже самое можно сказать про создание сложных программ или игр. В разработке простого драйвера нет ничего сложного и я попытаюсь на примерах это показать.
Сперва нам нужно определится в чем мы же будем создавать наш первый драйвер. Поскольку материал ориентирован на новичков, то язык программирования был выбран один из простых, и это не Си или ассемблер, а бейсик. Будем использовать один из диалектов бейсика — PureBasic. Из коробки он не обучен создавать драйверы, но у него удачный набор файлов, используемых для компиляции и небольшое шаманство позволяет добавить эту возможность. Процесс компиляции состоит из нескольких этапов. Если кратко, то он происходит следующим образом: Сначала транслятор «перегоняет» basic-код в ассемблер, который отдается FASM'у (компилятор ассемблера), который создает объектный файл. Далее в дело вступает линкер polink, создающий исполняемый файл. Как компилятор ассемблера, так и линкер могут создавать драйверы и если немного изменить опции компиляции, то получим не исполняемый файл, типа EXE или DLL, а драйвер режима ядра (SYS).
Окно IDE с загруженным кодом драйвера показано на скрине.
Компиляция драйвера выполняется через меню «Компилятор» (это если кто не понял).
Теперь определимся что будет делать наш первый драйвер. Обычно при изучении программирования начинают с простых вещей, скажем, выполнения математических операций и вывода результата. Вот пусть наш драйвер делает тоже самое, ведь банальная математика производимая в режиме ядра это очень круто!
Может показаться что это куча бессмысленного кода, но это не так.
У каждого драйвера должна быть точка входа, обычно у нее имя DriverEntry() и выполнена она в виде процедуры или функции. Как видите, в этом драйвере есть такая процедура. Если посмотрите на начало кода, то в первых строках увидите как ей передается управление. В этой процедуре происходит инициализация драйвера. Там же назначается процедура завершения работы драйвера, которая в нашем случае имеет имя UnloadDriver(). Процедуры CreateDispatch() и CloseDispatch() назначаются обработчиками соединения и отсоединения проги из юзермода.
Процедура DeviceIoControl() будет обрабатывать запросы WinAPI функции DeviceIoControl(), являющейся в данном драйвере связью с юзермодом. В конце кода расположена так называемая ДатаСекция (DataSection), в которой находятся имена драйвера, сохраненные в формате юникода (для этого использована одна из фишек ассемблера FASM).
Видите сколько понадобилось кода для выполнения простейшей математической операции — сложения двух чисел?
А теперь рассмотрим программу, работающую с этим драйвером. Она написана на том же PureBasic.
Процедура Plus() осуществляет связь с драйвером. Ей передаются хэндл, доступа к драйверу и слагаемые числа, которые помещаются в структуру и указатель на указатель которой, передается драйверу. Результат сложения чисел будет в переменной «Result».
Далее следует код простейшего GUI калькулятора, скопированного из википедии.
Когда закроют окно, то перед завершением работы программы, закрывается связь с драйвером и производится его деинсталляция из системы.
Результат сложения чисел 8 и 2 на скриншоте.
Исходные коды драйвера и программы, можно найти в папке «Examples», PureBasic на файлопомойке, ссылку на который давал в начале статьи. Там так же найдете примеры драйвера прямого доступа к порам компа и пример работы с памятью ядра.
PS.
Помните, работа в ядре чревата мелкими неожиданностями аля, BSOD (синий экран смерти), поэтому экспериментируйте осторожно и обязательно всё сохраняйте перед запуском драйвера.
Кто-то отметит, что вся нужная и ненужная информация по процессу перепрошивки находится на всем известном форуме. Я, свою очередь, отвечу, что во-первых — далеко не все проблемы и их решения там описаны, а во-вторых — не каждый сходу сможет найти среди такого обилия информации нужную. Я же исхожу из собственного опыта.
Важно:
Я не несу ответственности за ваши действия после прочтения данной статьи, обязательно делайте резервные копии данных на внешнее хранилище (SD-карты или компьютер). Но не пугайтесь — если вам удалось разблокировать загрузчик и установить recovery у вас всегда будет возможность восстановить устройство даже из «System Destroyed», а в большинстве случаев и реализовать «вертай взад» — установить официальную систему с блокировкой загрузчика (как, например, у Xiaomi).
Зачем мне перепрошивать устройство?
Для чего люди вообще перепрошивают свои устройства со стабильными ОС от производителя на какие-то сборки "От Васяна"? Причины у всех разные. Кому-то не нравится напичканная китайским хламом MIUI. Чьи-то устройства производитель уже давно не обновляет, а новую систему хочется. Кому-то по душе "чистая" система, кто-то больше не может жить под вечным прицелом Google Services и так далее и тому подобное. Справедливости ради хочу отметить, что множество неофициальных прошивок имеют поддержку от их разработчиков и на них регулярно прилетают OTA обновления. При этом они не уступают в безопасности официальным, а наиболее популярные поддерживают актуальные схемы шифрования ваших данных (FBE).
Что же такое – перепрошивка устройства?
Если коротко и ясно – замена или переустановка установленной операционной системы на другую операционную систему. Прямо как “винду переставить”. Данное определение не относится конкретно к телефонам — перепрошивают всё, что угодно, даже автомобили. Применительно к устройствам на Android это также не означает, что сторонняя прошивка должна быть именно системой Android — я имел опыт установки Ubuntu на телефон. Целесообразность этого поступка — вопрос другой.
Из каких же шагов состоит установка новой ОС, вместо существующей? Для большинства пользователей они будут примерно следующими:
Поиск и установка стороннего Recovery
Поиск файлов новой прошивки
Установка новой прошивки с помощью стороннего recovery
(опционально) Установка root-прав
(опционально) Установка GApps
В этой, как самой первой статье, я разберу только первые два пункта, в силу объема остальных.
Разблокировка загрузчика
Что за загрузчик и зачем его разблокировать? Загрузчик или Bootloader простыми словами – относительно небольшой кусочек программного кода, который занимается запуском установленной системы. Сам по себе он — незаменимая часть устройства, но в его функции также входит реализация технологии Verified Boot. Эта технология призвана ограничить установку ОС до авторизованных производителем (путем проверки подписи файла). С одной стороны, это защитит ваши данные от злоумышленника (он не сможет установить другую прошивку без форматирования вашего устройства), с другой – многие популярные прошивки обеспечивают надежное шифрование раздела Data. Наша цель — отключить механизм Verified Boot для того, чтобы мы могли установить стороннюю систему.
Скажу сразу – универсальной инструкции для всех телефонов нет и быть не может. Более того – некоторые устройства вообще не имеют способа разблокировки загрузчика, а некоторые не блокируются производителем изначально. Проверить факт блокировки загрузчика можно с помощью adb в режиме fastboot - fastboot oem device-info (что это и как пользоваться этим инструментом разберу в пункте про установку). Если true – заблокирован, иначе – нет. Все дальнейшие действия будут рассмотрены на примере устройства Xiaomi Redmi 8T на базе процессора Qualcomm.
Итак, если по результатам проверки вы обнаружили, что загрузчик заблокирован, то помочь вам с поиском способа разблокировки поможет только Технотроица – Отец (Сайт производителя), Сын (4pda) и Святой дух (Google). В случае с Xiaomi всё достаточно просто – на сайте производителя есть фирменная утилита для разблокировки загрузчика, ее использование интуитивно понятно. После успешного окончания процесса разблокировки необходимо отформатировать раздел Data, поскольку он зашифрован текущей системой и новая его попросту не расшифрует (в Xiaomi за это отвечают переключатели в окне разблокировки загрузчика) и можно приступать к процессу установки стороннего Recovery.
Установка стороннего Recovery
Что такое Recovery и почему мы начинаем процесс прошивки именно с него? Раздел Recovery – аналог BIOS на компьютере, также именуется как «Режим восстановления». Этакая "подсистема", которая призвана помочь в восстановлении работоспособности устройства. Заменить установленный производителем recovery сторонним необходимо потому, что "родной" не даст установить вам ничего, кроме официальной прошивки.
Немного о том, какие бывают Recovery
Я использую и настоятельно советую использовать другим именно TWRP-recovery, поскольку он сильно превосходит в функциональности и удобстве CWM.
Немного об ADB – это отладочный инструмент, который позволяет разработчикам отлаживать свои приложения, а таким энтузиастам как мы – прошивать телефоны и делать много других полезностей. Обо всех функциях вы можете узнать так же при помощи Технотроицы.
После скачивания recovery вы должны получить файл образа раздела android с расширением .img . Чтобы установить его на свое устройство, нам понадобится:
Компьютер или иное подходящее для запуска ADB устройство
USB-драйвера для вашего аппарата, установленные на компьютер
Чтобы прошить новый раздел recovery, необходимо перевести телефон в особый режим загрузчика – fastboot. На большинстве устройств это делается с помощью зажатия кнопок Power и Vol- при включении телефона. Успешным входом в этот режим будет считаться черный экран смартфона с белой строкой "fastboot mode". После этого необходимо подключить устройство к компьютеру при помощи USB-кабеля.
Для прошивки раздела recovery нам понадобится единственная ADB-команда. Для исполнения этих самых команд, воспользуемся консолью Windows. (я полагаю, вы справились с установкой ADB). Общий формат команды прошивки файла в раздел устройства выглядит следующим образом:
fastboot flash partition PathToFile
fastboot — путь к файлу fastboot.exe, поставляется вместе с ADB;
partition — доступный для прошивки раздел Android. Мы шьем recovery;
PathToFile — путь к .img-образу recovery, который вы скачали;
В моем случае, команда выглядела примерно так:
C:\adb\fastboot flash recovery C:\recovery.img
Некоторые recovery поставляются с автоматическими установщиками и ADB — вам нужно лишь запустить bat-файл.
Готово!
Поздравляю, вы только что получили, почти что, полный доступ над программной частью вашего устройства! Один шаг для энтузиаста — большой шаг для сообщества. Но это — только первый шаг, за ним идут еще несколько, не менее важных шагов к получению максимального контроля над вашим устройством.
Послесловие
Я намеренно не подкрепляю каждый шаг обилием скриншотов, поскольку каждый случай уникален, каждое recovery имеет свой интерфейс, но основные принципы остаются одинаковыми. Также, вы не увидите тут обилия ссылок – все приведенные проекты легко ищутся в поисковиках. Напоследок, хотелось бы привести текущую конфигурацию моего телефона:
Модель: Xiaomi Redmi Note 8T
Операционная система: Android 11 ArrowOS
Recovery: Pitch Black Recovery Project (twrp-based)
GoogleServices: NikGApps based
Читайте также: