Как запустить осу без видеокарты

Обновлено: 07.07.2024

Дефицит видеокарт на рынке поставил перед многими геймерами вопросы ребром: кто виноват и что делать? С виновными более-менее разобрались: пандемия, нарушенная работа заводов, высокий спрос пользователей на железо и бум майнинга криптовалют. Это факторы, с которыми придется мириться, скорее всего, весь 2021 год. Остается вопрос, что делать с апгрейдом старого железа, когда приобрести видеокарту по адекватным ценам пока не представляется возможным.

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

Стоит обозначить, что это обзорный материал, который наметит для вас пути к возможным решениям. Идеального и универсального для всех решения не существует, так что придется порефлексировать, чтобы разобраться в своих потребностях и соотнести их со своими возможностями.

Устаревшие затычки

Если бы я сейчас находился в ситуации, требующей обновления компьютера, то в первую очередь ориентировался бы на сборку системного блока с перспективой апгрейда, а не на видеокарты-затычки, которые сейчас можно купить по более-менее доступным ценам. Таких затычек есть две: GeForce GTX 1650 и GeForce GTX 1050 Ti. Они не очень интересны майнерам, которые добывают криптовалюту Ethereum, так как объем видеопамяти этих карточек не превышает 4 ГБ.

Первая — GeForce GTX 1650 — это карта позапрошлого поколения с апгрейдом памяти на более быструю, которую выпустили года два назад. В онлайн-играх и старых хитах в большинстве случаев демонстрирует отличную производительность в Full HD и на высоких настройках. С более современными проектами придется поумерить аппетиты в плане графики, чтобы добиться стабильного комфортного фреймрейта.

NVIDIA GeForce GTX 1650, базовая частота 1410 МГц, макс. частота 1590 МГц, 896sp, частота памяти 12000 МГц, 128 бит, доп. питание: 6 pin, 2.3 слота, DVI, HDMI, DisplayPort NVIDIA GeForce GTX 1650, базовая частота 1485 МГц, макс. частота 1740 МГц, 896sp, частота памяти 8000 МГц, 128 бит, 2 слота, DVI, HDMI, DisplayPort NVIDIA GeForce GTX 1650, базовая частота 1410 МГц, макс. частота 1785 МГц, 896sp, частота памяти 12000 МГц, 128 бит, доп. питание: 6 pin, 2.3 слота, DVI, HDMI, DisplayPort

Вторая —GeForce GTX 1050 Ti — совсем древний реликт прямиком из 2016 года. Nvidia зимой решила возобновить ее поставки партнерам, чтобы облегчить ситуацию с дефицитом видеокарт в бюджетном сегменте. Эта карточка позволит даже поиграть в Cyberpunk 2077 в разрешении Full HD и на низких настройках графики примерно при 30 кадрах в секунду, но с просадками.

NVIDIA GeForce GTX 1050 Ti, базовая частота 1392 МГц, макс. частота 1455 МГц, 768sp, частота памяти 7008 МГц, 128 бит, 2 слота, DVI, HDMI, DisplayPort NVIDIA GeForce GTX 1050 Ti, базовая частота 1392 МГц, макс. частота 1392 МГц, 768sp, частота памяти 7000 МГц, 128 бит, 2 слота, DVI, HDMI, DisplayPort NVIDIA GeForce GTX 1050 Ti, базовая частота 1392 МГц, макс. частота 1392 МГц, 768sp, частота памяти 7008 МГц, 128 бит, доп. питание: нет, 2 слота, DVI, HDMI, DisplayPort

Почему я бы избегал их появления в своем игровом корпусе? Во-первых, они старые — морально устарели, а запаса прочности для новых игр практически нет. Во-вторых, стоят данные видеокарты по докризисным меркам довольно дорого.




Но если есть непреодолимое желание играть в Full HD на компромиссных настройках в онлайн проекты и нетребовательные игры, отговаривать не стану.

Процессоры со встроенной графикой

При сборке я бы ориентировался не на старые затычки, а на процессоры со встроенной графикой. Такие есть в актуальном поколении процессоров от Intel и AMD. Они больше подходят для варианта пересидеть годик бум криптовалют, не тратить лишних денег на видеокарту, а потом приобрести достойный ускоритель 3000-й серии.

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

Народным процессором со встроенной графикой от Intel сейчас считается Core i5-10400. Это среднебюджетный 6-ядерный процессор с запасом на будущее. У него есть собрат с индексом F, в котором видеоядро заблокировано, так что важно не ошибиться при покупке. На этом процессоре можно организовать достаточно бюджетную по современным меркам сборку без видеокарты. Она вывезет карточную Hearthstone, DotA 2, World of Tanks и League of Legends в Full HD, но потребует снизить разрешение и качество графики до 720p в «контре» и многих других играх. Однако HD-разрешение и низкие настройки графики не спасут в таких играх, как Death Stranding: частота кадров будет неиграбельной.

Comet Lake, LGA1200, 6 ядер, частота 4.3/2.9 ГГц, кэш 12 МБ, техпроцесс 14 нм, TDP 65W Renoir, AM4, 6 ядер, частота 4.2/3.7 ГГц, кэш 3 МБ + 8 МБ, техпроцесс 7 нм, TDP 65W Picasso, AM4, 4 ядра, частота 4.2/3.7 ГГц, кэш 2 МБ + 4 МБ, техпроцесс 12 нм, TDP 65W

С этим процессором Intel со встроенной графикой можно будет потреблять медиаконтент и развлекаться классическими играми и отдельными онлайн-проектами. Но без дискретной видеокарты он предназначен только для того, чтобы переждать тяжелые времена и не переплачивать за видеокарты в условиях, когда они стоят в два-три-четыре раза дороже обычного.

Надо помнить, что у встроенной в процессор графики нет отдельной видеопамяти и под эти нужды система выделяет определенный объем из памяти оперативной. Так что в таких сборках нужно быть внимательным при выборе ОЗУ.

У «красных» также есть крепкие процессоры-конкуренты со встроенной графикой. Выделяются модели AMD Ryzen 5 3400G и AMD Ryzen 5 Pro 4650G — предыдущего и актуального поколения соответственно. Первый — с четырьмя ядрами, второй — с шестью. Их встроенная графика во многом превосходит описанное выше решение Intel. Ryzen 5 3400G, к примеру, позволяет играть в Cyberpunk 2077 в HD-разрешении с частотой 30—40 fps, тогда как у «встроенки» Intel в аналогичных условиях fps болтается в районе неиграбельных 10 кадров в секунду.




Это лишь пара примеров. В магазинах можно найти процессоры с более свежей встроенной графикой UHD 750 от Intel, которая заметно превосходит предшественника.

Rocket Lake, LGA1200, 6 ядер, частота 4.6/2.7 ГГц, кэш 12 МБ, техпроцесс 14 нм, TDP 65W Rocket Lake, LGA1200, 6 ядер, частота 4.4/2.6 ГГц, кэш 1 Кб + 12 МБ, техпроцесс 14 нм, TDP 65W

В любом случае направление для размышлений мы для вас обозначили, с процентами прироста производительности за дополнительную стоимость надо будет разобраться самим, потому что мы переходим к другой альтернативе видеокартам.


Игровой ноутбук

С ноутбуками для геймеров примерно та же беда, что и с видеокартами. Мобильные игровые станции с видеокартами новой, 3000-й серии испытали на себе дефицит чипов и стоят чрезвычайно дорого. Да, этот класс продуктов всегда обходился дороже сборки стационарного ПК. А если там еще используются и мониторы с высокой киберспортивной частотой обновления, то цена оказывается внушительной.

Но, вероятно, это также может быть связано с бумом майнинга. О чем говорить, если производитель MSI в официальном блоге рассказывает об эксперименте по майнингу крипты на ноутбуке GE76 Raider с видеокартой GeForce RTX 3080 и 16 ГБ оперативной памяти. Хешрейт добычи оказался сравнимым с возможностями дискретной видеокарты RTX 3070 для домашних компьютеров.

17.3" 1920 x 1080 IPS, 300 Гц, несенсорный, Intel Core i7 10870H 2200 МГц, 64 ГБ, SSD 2048 ГБ, граф. адаптер: NVIDIA GeForce RTX 3080 16 ГБ, Windows 10, цвет крышки темно-серый

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

Более-менее доступными по цене остаются игровые ноутбуки с видеокартами прошлых поколений, как, например, GeForce GTX 1650 с 4 ГБ видеопамяти или GeForce RTX 2060 на 6 ГБ. Конечно, такие станции в принципе слабо заточены под серьезный апгрейд в будущем, но позволяют в течение нескольких лет наслаждаться киберспортивными проектами и новыми играми в разрешении Full HD с некоторой кастомизацией настроек графики. Например, одна из самых популярных моделей в нашем Каталоге — ASUS TUF Gaming с 8 ГБ оперативной памяти, процессором Ryzen 7 3750H и видеокартой GeForce GTX 1650.

15.6" 1920 x 1080 IPS, 120 Гц, несенсорный, AMD Ryzen 5 4600H 3000 МГц, 8 ГБ, SSD 512 ГБ, граф. адаптер: NVIDIA GeForce RTX 2060 6 ГБ, без ОС, цвет крышки черный 15.6" 1920 x 1080 IPS, 144 Гц, несенсорный, Intel Core i5 10300H 2500 МГц, 8 ГБ, SSD 512 ГБ, граф. адаптер: NVIDIA GeForce GTX 1650 Ti 4 ГБ, без ОС, цвет крышки черный 15.6" 1920 x 1080 IPS, 144 Гц, несенсорный, AMD Ryzen 7 3750H 2300 МГц, 8 ГБ, SSD 256 ГБ, граф. адаптер: NVIDIA GeForce GTX 1650 4 ГБ GDDR5, без ОС, цвет крышки черный

Приставка нового поколения

В этом блоке я не буду советовать PlayStation 5 или Xbox Series X. Пока эти топовые приставки остаются труднодоступными для геймеров. PlayStation 5 стоит как игровой ноутбук, у которого есть всем известный магазин бесплатных игр под названием торренты. Xbox Series X стоит чуть дешевле, но все равно это выше рекомендованной цены производителя.

Как мне кажется, для геймера на бюджете, который хочет пересидеть шторм с минимальными потерями, более интересной к приобретению является Xbox Series S — младшая приставка нового поколения от Microsoft, рассчитанная на мониторы до 1440p и телевизоры с Full HD. К настоящему моменту ее цена опустилась до вполне приемлемого уровня, максимально близкого к рекомендуемой цене для нашего региона.

1 ТБ, разрешение игр - 4K UHD (2160p), поддержка HDR, в комплекте нет игр 825 ГБ, разрешение игр - 4K UHD (2160p), поддержка HDR, в комплекте 1 игра 512 ГБ, разрешение игр - QHD (1440p), поддержка HDR, в комплекте нет игр

Покупка Series S в качестве медиакомбайна, позволяющего посмотреть YouTube, Twitch и Netflix и запустить свежие игры, оказывается выгоднее, чем даже сборка компьютера на процессоре с интегрированной графикой. Другое дело, что такой компьютер можно использовать и для каких-то рабочих задач, но сегодня у нас не про работу.

А в связке с подпиской на каталог игр Game Pass младшая консоль от Microsoft точно позволит не заскучать в ожидании спада майнингового бума.

Облачный стриминг игр

Игровые компании все пытаются затащить геймеров в облачный стриминг, но пока выходит так себе. Основная причина заключается в качестве инфраструктуры связи, скоростях интернета и некомфортном пинге. Да и многие амбициозные проекты в наших краях не работают — например, Google Stadia или куда более интересный PlayStation Now. Хотя при должном рвении можно воспользоваться и ими, подставив несколько «костылей».

Если PS Now по ежемесячной подписке в €10 предоставляет доступ к каталогу игр, за которые дополнительно платить не надо, то работающий официально в нашем регионе GeForce Now, помимо подписки ($14 в месяц), требует еще и того, чтобы игры были оплачены в вашей библиотеке GOG, Steam, Epic и так далее. То есть нам предоставляют непосредственно технологический сервис стриминга, а не удаленный доступ к каталогу.

У российского сервиса PlayKey оплата за игровое время и вовсе почасовая. Час в облаке — 80 российских рублей, три часа — 225 рублей. Игры надо покупать отдельно либо пользоваться собственной библиотекой из популярных цифровых магазинов. Стоит учесть, что не все ваши игры могут быть доступны для стриминга из облака.

В общем, к стримингу игр пока остается слишком много вопросов: дисконнекты, пинг, краши картинки… Да и платить за то, чем ты, по сути, не владеешь, не очень хочется.

Осенью прошлого года я поскупился на быстрый апгрейд до RTX 3070. Да и с наличием у этой серии ускорителей были проблемы. Локти не грызу. Моя GTX 970 пока позволяет играть в нетяжелые проекты, отлично работает со старой библиотекой Steam. Тем не менее я определился, что наиболее интересным будет апгрейд в консольную сторону — во многом благодаря подписочному сервису Game Pass.

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

Как повысить FPS в Osu!, запустить игру на слабом ПК и получить 60 FPS - оптимизация

Прежде чем переходить к активным действиям нужно убедиться, что на компьютере есть хотя бы 10-15 Гб свободного места на жестком диске, на который установлена операционная система.

Обычно это диск «C». Этот минимальный запас необходим для того, чтобы система могла без каких-либо проблем создавать временные хранилища файлов Osu!, кэши и так далее.

Посмотрите системные требования Osu! и убедитесь, что на вашем жестком диске достаточно места для нормальной работы игры.

Отключить ненужные программы

Каждая программа, которая запущена в ОС, занимает определенный процент оперативной памяти и загружает процессор. Убедиться в этом легко, достаточно просто открыть диспетчер задач с помощью сочетания клавиш Ctrl+Alt+Del:


Отключить оверлеи

Речь идет о тех программах, которые способны отображать свой интерфейс поверх игры. Часто на компьютере есть такие — Fraps, Steam, Origin и так далее. Даже когда оверлей скрыт, он обрабатывается компьютером, снижая FPS в Osu!.

Поэтому все оверлеи нужно отключить. Почти всегда это можно сделать в настройках программы без необходимости ее удаления. Например, оверлей Steam, легко отключается через меню:


Обновить драйвера видеокарты, скачать драйвера для Osu!

Вне зависимости от того, какая видеокарта стоит в системном блоке, ее драйвера нужно поддерживать в актуальном состоянии. Поэтому перед запуском Osu! следует зайти на сайт производителя и проверить, не вышли ли новые драйвера:

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

Для некоторых игр производители видеокарт выпускают специально оптимизированные драйвера. Поищите таковые в разделе новостей о Osu! - обычно мы про них пишем. Также можно посмотреть на сайте производителей видеокарт.


Изменить параметры электропитания

По умолчанию в компьютере установлен сбалансированный режим электропитания, который, а в некоторых ноутбуках, в целях увеличения времени работы, и вовсе установлена экономия энергии.


Это не дает компьютеру раскрыть свой потенциал в Osu! полностью, поэтому первым делом нужно открыть панель управления, которую можно найти с помощью поиска. После нужно сделать следующее:

  • Выбрать режим просмотра «Мелкие значки»;
  • Кликнуть на «Электропитание»;
  • На экране найти опцию «Настройка схемы электропитания», кликнуть на нее;
  • Кликнуть на «Изменить дополнительные параметры питания»;
  • В открывшемся окне найти выпадающий список;
  • В списке выбрать «Высокая производительность»;
  • Нажать кнопку «Применить», затем кликнуть «ОК».

Включить режим производительности Nvidia

После установки драйвера для видеокарты от компании Nvidia можно ускорить работу Osu! с помощью режима производительности. Это немного упростит графику в игре, но повысит FPS. Обратите внимание, что этот метод доступен только в случае, если у вас видеокарта с чипом от Nvidia. Вот как это сделать:

  • В нижнем правом углу экрана, в трее, нажать правой кнопкой мыши на иконку «Настройки NVIDIA»;
  • В открывшемся окне справа выбрать вкладку «Параметры 3D»;
  • Нажать на опцию «Регулировка настроек изображения с просмотром»;
  • Справа поставить флажок напротив «Пользовательские настройки с упором на:»;
  • Передвинуть «ползунок», который находится ниже, в крайнюю левую позицию «Производительность»;
  • Снизу нажать на кнопку «Применить».


Далее необходимо запустить Osu! и убедиться, что все отображается корректно. Если возникают проблемы, то нужно вместо «Пользовательские настройки с упором на:» выбрать «Настройки согласно 3D-приложению».

Отключить эффекты Windows

Если Osu! работает не в полноэкранном режиме, а в окне, в том числе и без рамки, то повысить FPS можно, если отключить эффекты Windows. Для этого нужно проделать следующие действия:

  • Открыть «Проводник»;
  • Правой кнопкой нажать на «Этот компьютер» (или «Мой компьютер»);
  • В контекстном меню кликнуть на «Свойства»;
  • В открывшемся окне слева нажать на «Дополнительные параметры системы»;
  • В открывшемся окне перейти на вкладку «Дополнительно»;
  • В разделе «Быстродействие» нажать на кнопку «Параметры. »;
  • В открывшемся окне перейти на вкладку «Визуальные эффекты»;
  • Поставить флажок напротив опции «Обеспечить наилучшее быстродействие».


При необходимости на последнем шаге можно выбрать опцию «Особые эффекты». В таком случае можно самостоятельно выбрать, какие эффекты оставить, а какие — отключить.

Увеличить файл подкачки, если не хватает оперативной памяти для Osu!

Чтобы компенсировать недостаток оперативной памяти, можно увеличить файл подкачки. Это позволит системе хранить часть необходимых Osu! данных прямо на жестком диске. Вот что нужно сделать:

  • Открыть «Проводник»;
  • Правой кнопкой нажать на «Этот компьютер» (или «Мой компьютер»);
  • В контекстном меню кликнуть на «Свойства»;
  • В открывшемся окне слева нажать на «Дополнительные параметры системы»;
  • В открывшемся окне перейти на вкладку «Дополнительно»;
  • В разделе «Быстродействие» нажать на кнопку «Параметры. »;
  • В открывшемся окне перейти на вкладку «Дополнительно»;
  • Снять флажок с параметра «Автоматически выбирать объем файла подкачки» (если есть);
  • Поставить флажок напротив опции «Указать размер»;
  • В текстовых полях «Исходный размер (МБ):» и «Максимальный размер (МБ):» указать в мегабайтах значение, равное половине объема оперативной памяти.

Например, если в системном блоке установлена «плашка» на 4 Гб, то есть 4192 Мб, в поля выше нужно вписать число 2048. Можно сделать файл подкачки больше, но никакого прироста это не даст.


Еще больше ухудшить графику в Osu! (режим «картошки») - выключить сглаживание и т.п.

Если Osu! запускается, но сильно тормозит, то перед началом всех процедур следует снизить графику до минимума через настройки игры. Если это не помогло, то придется прибегнуть к помощи сторонних программ для настройки видеокарты:

Загрузив программу, запускаем ее. В случае с NVIDIA Inspector нужно запускать файл nvidiaProfileInspector.exe, а не nvidiaInspector.exe. Сверху, в строке «Profiles:» можно выбрать любую игру, которая поддерживается драйверами Nvidia.


Ниже представлены все доступные настройки. Их много, но для того, чтобы ухудшить графику в игре до «картофельной», вполне достаточно всего нескольких, которые находятся в разделе «Antialiasing».

Наибольший прирост производительности дает изменение этих двух параметров:

  • Texture filtering — LOD bias;
  • Antialiasing — Transparency Supersampling.

Каждая из этих настроек имеет разные значения. Некоторые из них могут делать картинку в Osu! неудобоваримой, поэтому следует попробовать разные комбинации значений, которые дают более-менее сносное играбельную картинку.


В случае с RadeonMod все аналогично: нужно найти настройки, отвечающие за отображение текстур и снижать их до тех пор, пока FPS в игре не станет достаточно высоким.

Как разогнать видеокарту для Osu!

Все, что связано с «разгоном», направлено на увеличение производительности, но это довольно обширные темы, о которых в двух словах рассказать сложно. К тому же это всегда довольно рисковое дело. Если что, мы вас предупредили.

Чтобы добиться большего значения FPS в Osu!, сначала можно попробовать разогнать видеокарту. Самый простой способ сделать это — воспользоваться встроенными функциями ПО от производителя видеокарты.


Например, в комплекте с некоторыми видеокартами от GIGABYTE поставляется программа Graphics Engine, в которой есть несколько уже готовых профилей разгона. Это позволяет выжать из видеокарты 5-10 дополнительных кадров в секунду.

Если программы от производителя нет, то всегда можно воспользоваться универсальным решением — MSI Afterburner. Это одна из лучших программ для разгона, в ней множество разных настроек.


Но тут придется все настраивать вручную. Повышать следует в первую очередь частоту самого видеочипа («Core Clock») и частоту памяти видеокарты («Memory Clock»). Слева находятся базовые значения этих параметров. Справа отображаются температура и увеличение вольтажа — эти характеристики позволяют следить за «здоровьем» видеокарты.

При повышении частоты возрастает нагрев видеокарты. Если температура переходит отметку в 85 градусов, то следует увеличить скорость оборотов вентиляторов («Fan Speed»). Если температура повысилась до 100 градусов, то следует немедленно прекратить разгон, иначе чип может расплавиться. Мощный «разгон» требует водяного охлаждения, поэтому не следует повышать частоты более чем на 10%.

Разогнать процессор

В то время как «разгон» видеокарты вполне осуществим прямо в Windows, для того, чтобы улучшить работу процессора и тем самым увеличить быстродействие Osu!, придется лезть в «Биос».

Геймерский «разгон» процессора обычно предполагает увеличение процессорного множителя (Core Ratio). Сделать это можно далеко не на каждом процессоре, а только на том, где этот множитель разблокирован. Обычно такие процессоры помечаются особым образом. Например, компания Intel использует маркировки «K» и «X‘. То есть, например, i7-4790 нельзя разогнать с помощью множителя, а вот i7-4790K — вполне.


Но как узнать точное название модели процессора? Проще всего воспользоваться программой CPU-Z. Запустив ее, нужно открыть вкладку «CPU» и посмотреть на самую первую строчку — «Name». Это и есть название процессора. Кстати, там же можно увидеть из сам множитель. Он в разделе «Clocks», в строке «Multiplier». Если процессор поддерживает «разгон», то этот множитель можно изменить.

Чтобы изменить коэффициент Core Ratio, нужно сначала попасть в оболочку BIOS. Для этого нужно нажать особое сочетание клавиш во время загрузки компьютера (до того, как появится экран Windows).


Сочетание может различаться в зависимости от материнской платы. Часто BIOS можно вызвать с помощью клавиши «F8» или «Del». На экране «Биоса» нужно найти раздел, посвященный процессору. Тут тоже все сложно, так как оболочек у BIOS много. Практически каждый производитель материнский плат использует свою собственную, поэтому без знания английского языка найти нужное место не так-то просто.

Изменять множитель нужно постепенно, повышая его на 2. После каждого изменения следует перезапускать компьютер и тщательно проверять работоспособность и температуру процессора. Если она становится выше 80 градусов во время игры, то нужно немедленно выключить Osu!, перезагрузить компьютер, зайти в BIOS и снизить значение Core Ratio. Иначе процессор может сгореть.

Это руководство покажет вам, как переключаться между выделенным графическим процессором или интегрированной графикой для любого приложения или игры в Windows 10. Вы также можете использовать это руководство, чтобы заставить любое приложение работать на интегрированной графике вместо выделенного графического процессора.

Содержание

Выбираем встроенный или дискретный графический процессор на ноутбуке

Этот метод работает в основном только на портативных компьютерах. Для настольного ПК перейдите к следующему способу. Вы все еще можете попробовать этот метод на своем настольном ПК. Это будет работать при условии, что оба графических процессора можно увидеть в параметрах, которые мы покажем ниже.

В Windows 10 есть функция, о которой многие люди не знают, которая чрезвычайно полезна, если у вас есть дискретный графический процессор и встроенная видеокарта на вашем ноутбуке. Если вы хотите заставить Chrome, Firefox или буквально любое другое приложение, даже игру использовать определенный графический процессор (например, Nvidia или AMD) вместо встроенного графического адаптера (или наоборот), это можно сделать в настройках Windows 10. Приведем пример, если Вы в дороге работаете на ноутбуке с документами, то лучше выбрать встроенную видеокарту, так как разряд аккумулятора ноутбука будет ниже, что позволит ноутбуку проработать больше. Для игры, каждый игрок знает, нужна высокая производительность, поэтому Вы сможете указать дискретную видеокарту, ниже мы расскажем как выполнить данные настройки.

    Щелкните правой кнопкой мыши в любом месте рабочего стола и выберите Параметры экрана.

Запускаем игру или приложение на встроенной или дискретной видеокарте на ПК

Еще один способ запустить приложение или игру на определенной видеокарте - это выбрать необходимую видеокарту для нужного приложения в Панели управления NVIDIA.

  1. Запустите Панель управления NVIDIA и откройте пункт Управление параметрами 3D.
  2. Перейдите на закладку Программные настройки ниже нажмите кнопку Добавить и выберите исполняемый файл необходимой программой.
  3. Далее выберите нужный графический процессор для выбранной программы, также в окне настроек укажите необходимую конфигурацию для запуска этой программы, либо оставьте настройки по умолчанию.

Внимание! Рекомендуем на вкладке Глобальные параметры проверить в разделе Предпочитаемый графический процессор установлено ли значение Автовыбор

В Панели управления NVIDIA нет выбора графического процессора - что делать?

Если нет возможности добавить в контекстное меню запуск с определенным графическим процессором ни в Панели управления Nvidia, ни в настройках дисплея, вполне вероятно, что ваш чипсет GPU не поддерживает технологию Nvidia Optimus. Технология Optimus позволяет графическому процессору Nvidia задействоваться в определенный момент, когда это необходимо. Чтобы проверить, поддерживает ли ваша графическая карта NVIDIA эту технологию, перейдите по этой ссылке. Там представлен список всех графических процессоров, поддерживающих технологию Optimus.

Кроме того, убедитесь, что у Вас установлен последний драйвер для видеокарты. Старые драйверы и устаревшие версии панели управления Nvidia могут не иметь такой возможности.


В этой части попробуем сделать “невозможное”: научимся использовать графический дисплей без операционной системы. На самом деле это задача не из легких, особенно в случае работы в 32-х битном защищенном режиме, и особенно если хочется использовать приличное разрешение экрана а не 320x200x8. Но все по порядку: раз хотим графику – значит нужно работать с видеокартой.


Современные графические карты – это практически полноценные компьютеры по мощности не уступающие основному: тут и декодирование MPEG2 в качестве 1080p, поддержка 3D графики и шейдеров, технологии вроде CUDA, и многое другое. Это все выглядит весьма сложно. С другой стороны видеокарты – это всего лишь очередной PCI девайс, такой же, как и остальные. Это устройство мы даже “нашли” в предыдущей статье с номером класса устройства 0x03 (class_name=graphics adapter). Как и с любым, устройством с видеокартой можно работать при помощи портов ввода-вывода или MMIO областей памяти, а сама видеокарта может использовать DMA и прерывания для взаимодействия с основным процессором. Если посмотреть на диапазон портов ввода-вывода, доступных у видео карт, то мы увидим, что всего ей выделяется менее 50-ти байт – не так уж и много с учетом огромной функциональности, которой обладают современные видеокарты.


По стандарту VGA для работы с видеокартой будут использоваться именно два диапазона портов ввода вывода: 0x03B0-0x03BB и 0x3C0-0x3DF. Помимо этих диапазонов есть еще диапазон видеопамяти (0xA0000-0xBFFFF), отображаемой в основную память.

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


К сожалению, есть одно но: VGA — стандарт старый и рассчитан на использование простых графических дисплеев с малым, по современным меркам, разрешением экрана. В стандарте определено пару десятков различных графических и текстовых режимов (посмотреть все можно тут), среди которых самыми “крутыми” являются: 320x200 на 256 цветов и 640x480 на 16 цветов. При этом в стандарт входят только функции переключения режимов и функции для работы с палитрой. А где же нормальные разрешения экранов: 1920x1080 24 бита, ну или хотя бы 800x600 24 бита? Где поддержка MPEG2 графики? Где 3D графика? В стандарте VGA этого нет. Про графические режимы еще можно сказать, что они входят в стандарт SVGA работа с которым, осуществляется через расширения BIOS VBE, про которые речь пойдет дальше. А 3D, MPEG2, CUDA и другие модные фишки поддерживаются каждым производителем видеокарт по-своему. Предельное разрешение экрана в 640x480 в стандарте VGA, помимо рассчета на старые дисплеи, обусловлено размером видеопамяти: всего 128 килобайт (для работы с большим разрешением требуется гораздо больше места: 1920x1080 24бит – это более 6Mb). Значит нужно, чтобы была еще область видеопамяти большого размера, и у современных видео карт такая область есть:


Один из приведенных выше диапазонов используется как Linear Frame Buffer (LFB) – тоже видеопамять. Второй диапазон адресов используется для отображения сотен регистров и битовых полей, которые используются для настройки видеокарты. Причем набор регистров и способы работы с ними уникальны не только у каждого производителя видео карт — они могут значительно отличаться как между сериями, так и даже моделями одного производителя, и все это нужно, чтобы обеспечить работу CUDA, MPEG2, 3D,… Исходники всех графических драйверов в ОС Linux занимают более 8 мегабайт:

А вот пример драйвера видеокарты для одного из производителей:


Остальные содержат еще больше кода И это еще без дополнительных библиотек в Linux, которые используются в драйверах.

Значит, чтобы обеспечить поддержку 3D или потокового видео, нужно очень много поработать. Как говориться: если у вас есть еще одна жизнь, чтобы потратить ее, то …

Впрочем, в этой статье мы сосредоточимся на том, чтобы просто включить приличный графический режим и нарисовать в нем что-нибудь красивое: например, фрактал. Посмотрим насколько это просто.

Полную спецификацию можно найти здесь. Мы же кратко опишем то, с чем предстоит работать.

Все режимы, поддерживаемые видео картой нумеруются по порядку от 0x000 до 0x1FF. Не все номера заняты и не все номера после 0x100 имеют в стандарте точное значение разрешения экрана: таким образом, по требуемому разрешению экрана номер еще нужно будет найти. Номера режимов до 0x100 определены стандартом VGA и полностью совпадают с ним. LFB – Linear Frame Buffer, это область видеопамяти, рассчитанная на большие разрешения экрана (обычно она располагается за пределами оперативной памяти, но до 4GB).

Без LFB для работы со всеми графическими режимами используется стандартная область видеопамяти с 0xA0000 по 0xC0000. В этом случае будет использоваться режим “банков”. Весь экран разбивается на нумерованные части (банки) и в каждый момент времени область видеопамяти указывает на одну из таких частей. То есть, прежде чем рисовать пиксель на экране, нужно будет установить номер банка, затем нарисовать пиксель, обращаясь к видеопамяти. Таким образом одна и та же область памяти может использоваться повторно для работы с различными областями на дисплее.


Использовать LFB проще и быстрее, поскольку ничего переключать не нужно, и весь дисплей отображается в LFB целиком. Видеопамять в LFB организована линейным образом: счет пикселей начинается построчно с верхнего левого угла экрана. Каждый пиксель представлен одним, двумя, тремя или четырьмя байтами в зависимости от битности текущего графического режима. Байты расположены подряд и в них закодирован цвет пикселя. Самые простые и приличные режимы это 32-х и 24-х битные (трех и четырех байтные). В этих режимах каждый канал цвета (Red, Green, Blue) представлены 1-м байтом. В 32-х битном режиме еще один байт зарезервирован и не используется (можно сказать, что он используется для выравнивания). Еще одна особенность с LFB: по стандарту, чтобы включить LFB в номере режима нужно установить еще один бит: mode_number | 0x4000.


Таким образом, используя функцию номер 2 (в приведенном выше списке), можно будет найти номер режима с LFB и включить его при помощи функции номер 3. Затем можно будет рисовать на экране просто записывая байтики со значениями RGB по нужному смещению в буфере LFB.
Пока все выглядит многообещающе, но, VBE это расширение BIOS и оно представляет собой 16-ти битный код для Real-Mode обрабатывающий определенную функцию BIOS (в нашем случае 10h). Получается, что надо использовать VBE (16 бит Real Mode) из привычного 32- бита Protected Mode, который мы получили в предыдущей статье. Существует три способа, как это сделать:
1. Переключиться в Real Mode, выполнить нужные действия, вернуться обратно в Protected Mode. Нужно писать функции перехода между режимами, сохранять состояние процессора, да и в общем случае нужно еще прерывания корректно обрабатывать.
2. Использовать расширение VBE через 16-ти битный интерфейс из Protected Mode. Для этого нужно настраивать таблицы дескрипторов, создавать call Gate, компилировать 16-ти битный код и настраивать еще одну дополнительную структуру по стандарту VBE. Тоже не очень удобно, к тому же не все видео карты такое расширение поддерживают.
3. Использовать эмулятор 16-бит Real Mode, который работает в Protected Mode. Единственное ограничение этого эмулятора в том, что трудно будет писать обработчики прерываний для самой видео карты, но нам это и не нужно, ибо все функции VBE прерывания видео карты не используют.

Третий способ выглядит самым простым, поскольку можно взять готовый эмулятор x86emu (простой и хорошо переносимый) и использовать его для вызова функций VBE.
Поработать, конечно, придётся, но мы сможем за относительно небольшое количество действий собрать программу, которая на любой современной видеокарте сможет, без операционной системы, включить графический режим и нарисовать фрактал. Пока без шейдеров и 3D но, зато графика.

! ВАЖНО!: Все дальнейшие действия могут успешно осуществляться только после успешного прохождения всех 6-ти шагов из первой части статьи “Как запустить программу без операционной системы”

1. Добавить несколько функций в common, которые нам понадобятся для x86emu и рисования фракталов.
2. Портировать x86emu.
3. Написать несколько функций для работы с VBE.
4. Написать функцию рисования фрактала.
5. Все объединить и запустить.

Шаг 1. Дополняем common стандартными функциями.

Сперва нужно добавить несколько функций работы с 64-х битными числами. Они понадобятся gcc для компиляции x86emu.

1. Добавляем следующие файлы в папку common: udivdi3.c, umoddi3.c, moddi3.c, qdivrem.c, divdi3.c. Их можно взять здесь.


3. Теперь, качаем библиотеку newlib.Она понадобится еще для одной функции. Из исходников библиотеки нужно скопировать файл newlib-2.0.0\newlib\libm\math\s_floor.c в папку common. В нем заменяем строку:

4. Еще нужно добавить функции setjmp/longjmp. Эмулятор x86emu использует эти функции для обработки ошибок. Реализация этих функция приводится ниже, он была создана на основе реализации из newlib, но немного упрощена. Функция позволяет сохранить состояние процессора, а затем его восстановить. По сути похоже на ручную реализацию C++ исключений. Для того, чтобы эти функции появились в нашем коде, надо создать файл setjmp.s в common со следующим содержанием (немного простого ассемблера):


Ассемблерный код просто сохраняет регистры в определнном порядке, а затем их восстанавливает.
5. Теперь функции нужно объявить для языка C. Для этого создаем файл setjmp.h в include со следующим содержанием:


6. Еще один важный набор функций, который потребуется, это функции работы со строками и памятью (memset, strlen итд.). Эти функции готовыми можно взять из bitvisor, поэтому нужно скачать исходники этого гипервизора. Из этих исходников скопируем файл core\string.s в common. В нем заменим строку:

7. Далее нужно скопировать из bitvisor еще файл include\core\string.h в include. В нем заменить строку:

8. Последнее, что понадобиться – это функции работы с портами ввода-вывода. Для этого добавляем файл io.h в каталог include, который без изменений можно взять из того же проекта bitvisor (в исходниках проекта он расположен в include\io.h).
9. Чтобы все скопилировалось, заменяем содержимое include\types.h на следующие:

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

Шаг 2. Портирование x86emu

Теперь, нужно внести несколько изменений в эти исходники:
1. В файле x86emu\x86emu.c заменить строки:

2. В файле x86emu\x86emu.h заменить строки:


3. В файле x86emu\x86emu_util.c заменить строки:


4. Далее необходимо в файл x86emu\x86emu_util.c добавить несколько функций перед функцией x86emu_init_default:

Эти функции представляют собой обертки над функциями обращения к портамм ввода-вывода.

5. В самой же функции x86emu_init_default добавить следующие определения:

Поскольку видеокарта – это устройство и VBE будет работать с ней через порты ввода-вывода при помощи ранее определенных функций, то эмулятору нужно сообщить о их наличии.

Шаг 3. Добавление функций для работы с BIOS.

Теперь можно использовать функции BIOS VBE через x86emu. Осталось сделать несколько функций которые непосредственно выполняют запрос к BIOS. Для этого создаем файл bios.c в папке common со следующим содержанием:

И в папке include файл bios.h со следующим содержанием:


Таким образом мы определили функцию для инициализации работы с bios (VBE_BiosInit), которую нужно будет вызвать в начале работы и функцию вызова функции bios (VBE_BiosInterrupt). Название последней следует из того, что именно через инструкцию int (interrupt) происходит вызов функций BIOS в Real-Mode. При помощи этой функции можно вызывать функции VBE в соответствие со стандартом. Для вызова прерывания необходимо заполнить структуру с состоянием процессора и вызвать эмулятор. Эмлуятор начнет декодировать и эмулировать код из таблицы IVT и собственно кода BIOS. Инструкция за инструкцией эмулятор выполнит весь необходимый код обработчика int 10h. В процессе работы эмулятор будет вызывать функции работы с портами ввода-вывода, которые мы указали ранее, на шаге 2.

Шаг 4. Добавление функций для работы с VBE.


Теперь создадим файл vbe.c в папке common со следующим содержанием:


Рассмотрим подробнее функции, объявленые в этом файле:
• VBE_GetGeneralInfo. Эта функция проверяет наличие VBE у видео карты. Она использует функцию BIOS и проверяет возвращаемые значения в соответствие со спецификацией.
• VBE_GetModeInfo. Эта функция спрашивает у видео карты информацию о режиме по номеру. Возвращает информацию об этом режиме в виде структуры. Параметры передаваемые VBE_BiosInterrupt обусловлены спецификацией VBE.
• VBE_SetMode. Эта функция просто включает нужный режим по номеру. Параметры передаваемые VBE_BiosInterrupt обусловлены спецификацией VBE.
• VBE_Setup. Самая важная функция: она перебирает все режимы и ищет тот, который удовлетворяет указанному в параметрах разрешению экрана. Так же функция ищет режим только 24-х и 32-х битные и с поддержкой LFB. В результате поисков она заполняет три глобальных переменные:
o vbe_lfb_addr – адрес LFB. В него можно срезу писать данные для рисования на экране.
o vbe_selected_mode – номер выбранного режима, чтобы его можно было включить.
o vbe_bytes – количество байтов на пиксель (3 или 4).

Все готово для рисования.

Шаг 5. Добавление функции рисования фрактала.

Приступаем к самому интересному: рисуем фрактал. Будем рисовать фрактал на множестве Жюлиа. За основу для рисования фрактала был взят код из этой замечательной статьи. Для рисования фрактала, можно просто создать файл fractal.c в корневой директории с исходниками, со следующим содержанием:

Разберем этот код чуть подробнее. Во-первых, этот код содержит необходимые определения:

Во-вторых, определена функция преобразования цвета HSVtoRGB. Она нужна, чтобы все выглядело красиво. Ее реализация была взята отсюда

Наконец, самая главная функция рисования фрактала DrawFractal. В ней нужно отметить несколько моментов:

1. Сперва в ней определены параметры экрана которые будут использоваться для режима и рисования:
int x = 0, y = 0, w= 800, h = 600;
Вы можете менять эти функции на свой вкус.

2. Затем настраивается VBE:


3. Потом включается найденный графический режим:


4. Далее рисуется фрактал. Для установки точки на экране используется простая запись числа в память, при этом вычислив правильное смещение:


Теперь, когда все готово, надо вызвать эту функцию из main, иначе мы не увидим результаты своих трудов. Вносим изменения в kernel.c:

Шаг 6. Доработка makefile и запуск

Остается доработать только makefile, чтобы все скомпилировалось. Для этого внесем следующие изменения:
1. Обновим OBJFILES:

2. Добавим еще одну директорию include, для этого внесем изменение в строку:

3. Добавим цель для компиляции ассемблера:

4. Теперь можно пересобрать проект:


5. Запускаем проект, чтобы убедиться, что все работает:


Если все сделано правильно, то мы должны увидеть вот такую красоту:

Как и в предыдущих частях статьи, при помощи команды dd можно скопировать образ hdd.img на флешку и проверить работу программы на реальном компьютере.

В итоге получилась программа, которая демонстрирует возможности по использованию видео карт без операционной системы, при этом используя расширение VBE с привычными разрешениями экрана. Для включения графического режима пришлось портировать целый эмулятор инструкций, но оно того стоило, ведь иначе пришлось бы портировать какой-нибудь драйвер видео карты, а это заняло бы гораздо больше времени. Теперь на основе этой программы можно рисовать на экране все что угодно, даже создать собственную игру или построить оконную систему, но об этом в другой раз.

Ссылки на следующие статьи цикла:
"Как запустить программу без операционной системы: часть 4. Параллельные вычисления"
"Как запустить программу без операционной системы: часть 5. Обращение к BIOS из ОС"
"Как запустить программу без операционной системы: часть 6. Поддержка работы с дисками с файловой системой FAT"

Читайте также: