VESA BIOS Extensions
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Расширения VESA BIOS ( VBE ) — это стандарт VESA , в настоящее время версия 3, который определяет интерфейс, который может использоваться программным обеспечением для доступа к совместимым видеоплатам с высоким разрешением и битовой глубиной. Это противоположность «традиционным» вызовам INT 10h BIOS , которые ограничены разрешением 640×480 пикселей и глубиной 16 цветов (4 бита) или меньше. VBE доступен через BIOS видеокарты , который устанавливает некоторые прерываний векторы , указывающие на него во время загрузки .
Большинство новых карт реализуют более функциональный стандарт VBE 3.0. Старые версии VBE предоставляют только интерфейс реального режима , который нельзя использовать без значительного снижения производительности в операционных системах с защищенным режимом . Следовательно, стандарт VBE практически никогда не использовался для написания драйверов видеокарты; Таким образом, каждому производителю пришлось изобрести собственный протокол для связи со своей собственной видеокартой. Несмотря на это, драйвер обычно использует прерывание реального режима, чтобы инициализировать режимы экрана и получить прямой доступ к линейному буферу кадров карты , поскольку в противном случае эти задачи потребовали бы обработки многих сотен собственных вариаций, существующих от карты к карте. карта.
В системах EFI 1.x INT 10H и расширения VESA BIOS (VBE) заменяются протоколом EFI UGA. В широко используемых системах UEFI 2.x INT 10H и VBE заменяются UEFI GOP . [1] [2]
Стандарты
[ редактировать ]Ранний VBE
[ редактировать ]VBE 1.0 (VS891001) был определен в 1989 году. [3] VBE 1.1 (VS900602) был определен в 1990 году. VBE 1.2 (VS911022) был определен в 1991 году. [4] Для работы этих версий VBE требуется реальный режим.
VBE определяет несколько новых функций, вызываемых через INT 10H . Нумерация функций начинается с AX=4F00 или (AH=4F, AL=00) для функции 00h . От 00h до 05h были определены в VBE 1.0, 06h и 07h в 1.1 и 08h в 1.2.
VESA BIOS Extensions (VBE core) 2.0 (November 1994)
[ редактировать ]Этот стандарт обеспечивает основные функции расширений VESA BIOS. Он позволяет приложениям определять возможности видеокарты и предоставляет возможность устанавливать найденные режимы отображения. VBE 2.0 добавляет некоторые новые функции по сравнению с предыдущим стандартом VBE 1.2, включая доступ к линейному кадровому буферу и банковское обслуживание в защищенном режиме . Некоторые из VBE Core 2.0 [5] особенности включают в себя:
- Линейный доступ к кадровому буферу
- Обеспечивает прямой доступ к кадровому буферу в защищенном режиме как к одной большой области памяти вместо менее эффективных более мелких фрагментов.
- Защищенный режим банкинга
- Разрешает доступ к кадровому буферу из защищенного режима без «перехода» в реальный режим . Это реализовано с помощью новой функции 0Ah .
- Super VGA Перелистывание страниц
- Обеспечивает более высокую производительность анимации для обеспечения плавной анимации в компьютерных играх и других высокопроизводительных графических программах.
- Виртуальные экраны Super VGA
- Позволяет программному обеспечению настраивать разрешение виртуального дисплея , превышающее фактическое разрешение дисплея, а также плавно прокручивать или перемещать увеличенное изображение.
- High Color и TrueColor Режимы
- Стандартные 16-битные и 24-битные графические режимы для разрешений от 320×200 до 1600 × 1200 .
VESA BIOS Extensions (VBE core) 3.0 (September 1998)
[ редактировать ]Расширение стандарта VBE 2.0. Этот стандарт добавляет к стандарту VBE 2.0 управление частотой обновления , возможности для стереоочков , улучшенную мультибуферизацию и другие функции.
- Тройная буферизация
- Позволяет высокоскоростным приложениям выполнять мультибуферизацию с меньшим мерцанием экрана и без необходимости ждать графического контроллера.
- Управление частотой обновления с использованием таймингов GTF.
- Это позволяет приложениям и утилитам операционной системы стандартным образом изменять частоту обновления на всех графических контроллерах VBE 3.0. Это важно для стереоприложений, поскольку при включении стереоэффекта эффективная частота обновления пользователя снижается вдвое.
- Стерео перелистывание страниц
- При просмотре приложения с использованием стереоочков программному обеспечению приходится перелистывать страницы в два раза чаще, чем обычно, поскольку ему необходимо генерировать отдельные изображения для каждого глаза. Эта новая функция обеспечивает правильное отображение стереосовместимого программного обеспечения.
- Аппаратная стереосинхронизация
- Позволяет стереопрограмме определить, есть ли на видеокарте пользователя разъем для стереоочков.
В качестве альтернативы функции 0Ah была добавлена новая «Точка входа в защищенный режим» .
VBE/функции ускорителя (VBE/AF) (август 1996 г.)
[ редактировать ]VBE/AF предоставляет низкоуровневый стандартный интерфейс для общих функций ускорения, доступных на большинстве аппаратных средств. Некоторые из функций, определенных в стандарте, — это доступ к аппаратным курсорам, передаче битовых блоков (Bit Blt), внеэкранным спрайтам , аппаратному панорамированию, рисованию и другим функциям. Он предназначен для работы в 32-битном защищенном режиме. Несмотря на широкое распространение VBE Core, очень немногие устройства поддерживают VBE/AF. Проект FreeBE/AF реализует бесплатные сторонние драйверы VBE/AF для определенных видеокарт.
Дополнительные характеристики
[ редактировать ]Дополнительные спецификации обеспечивают независимый от устройства интерфейс между прикладным программным обеспечением и оборудованием Super VGA. Номера функций присваиваются Комитетом по стандартам программного обеспечения VESA (SSC).
Расширения управления питанием (PM)
[ редактировать ]DPMS — это аппаратный стандарт, который позволяет видеокартам взаимодействовать с DPMS-совместимыми мониторами через специальную систему сигнализации, которую можно использовать с существующими графическими контроллерами и кабелями монитора. Эта система сигнализации позволяет видеокарте сообщать монитору о переходе в различные состояния управления питанием или энергосбережения, что позволяет монитору автоматически отключаться, когда он не используется.
Расширения интерфейса плоской панели (FP)
[ редактировать ]Обеспечивает доступ к специальным функциям контроллеров с плоскими панелями.
Расширения аудиоинтерфейса (AI)
[ редактировать ]Предоставляет стандартные аудиоуслуги.
В настоящее время (версия 1.00) спецификация VBE/AI определяет три класса устройств: WAVE, MIDI и VOLUME. Неохваченные типы устройств:
- управление компакт-диском
- который покрывается расширениями Microsoft CD-ROM .
- Процессоры эффектов
- Этот класс устройств будет расширен в будущей версии спецификации VBE/AI.
OEM-расширения
[ редактировать ]Обеспечивает стандартный доступ к расширениям, специфичным для конкретного поставщика.
Канал данных дисплея (DDC)
[ редактировать ]Канал данных дисплея или DDC — это цифровое соединение между дисплеем компьютера и графическим адаптером , которое позволяет дисплею передавать свои характеристики адаптеру. Стандарт был создан VESA .
Последовательный интерфейс управления (SCI)
[ редактировать ]Предоставляет аппаратно-независимые средства для операционной системы и приложения для чтения и записи данных через I²C последовательный интерфейс управления .
Номера режимов VBE
[ редактировать ]Хотя номер режима представляет собой 16-битное значение, дополнительные номера режимов VBE имеют ширину 14 бит. Бит 15 используется VGA BIOS как флаг очистки или сохранения памяти дисплея. VBE определил номера режимов следующим образом:
Кусочек | Значение |
---|---|
0–8 | Номера режимов. Если бит 8 равен 1, это режим VBE, определенный VESA. |
9-10 | Зарезервировано для расширения. Должен быть установлен на 0. |
11 | Управление частотой обновления Выберите. Если установлено значение 1, используйте заданные пользователем значения CRTC для частоты обновления, в противном случае используйте частоту обновления BIOS по умолчанию. |
12–13 | Зарезервировано для VBE/AF. Должен быть установлен на 0. |
14 | Выбор линейного/плоского кадрового буфера. Если установлено значение 1, используется линейный буфер кадров, в противном случае используется групповой буфер кадров. |
15 | Сохранить выбор памяти дисплея. Если установлено значение 1, сохраните память дисплея, в противном случае очистите память дисплея. |
Начиная с VBE/Core 2.0, VESA больше не определяет новые номера режимов VESA и больше не требует устройства для реализации старых номеров. Чтобы правильно определить информацию о режиме экрана, используйте функцию 01h — Возврат информации о режиме VBE .
Режим 81FFh — специальный видеорежим, предназначенный для сохранения текущего содержимого памяти и предоставления доступа ко всей видеопамяти.
Режимы, определенные VESA
[ редактировать ]Начиная со стандарта VBE 2.0, VESA не будет определять новые режимы, а старые режимы больше не являются обязательными. Использование определенных режимов следует считать устаревшим: современные видеокарты могут использовать или не использовать эти номера режимов (хотя большинство из них используют их для обратной совместимости), а современное программное обеспечение не должно их использовать. Правильный способ для программного обеспечения обнаружить доступные режимы отображения — получить список режимов (используя «Функция 00h — возврат информации о контроллере VBE»), а затем проверить каждый режим (используя «Функция 01h: возврат информации о режиме VBE»), пока не найдет режим/ы, которые ему необходимы. [ нужна ссылка ]
Графические режимы | 320×200 | 640×400 | 640×480 | 800×600 | 1024×768 | 1280×1024 |
---|---|---|---|---|---|---|
16-цветная палитра | 258 (0102ч), 106 (6Ач) | 260 (0104ч) | 262 (0106ч) | |||
256-цветная палитра | 256 (01:00) | 257 (0101ч) | 259 (0103ч) | 261 (0105ч) | 263 (0107ч) | |
15-битный (5:5:5) | 269 (010Dh) | 272 (01:10ч) | 275 (01:13ч) | 278 (0116ч) | 281 (0119ч) | |
16-битный (5:6:5) | 270 (010Эх) | 273 (0111ч) | 276 (01:14ч) | 279 (0117ч) | 282 (011Ач) | |
24-битный (8:8:8) | 271 (010Fh) | 274 (01:12ч) | 277 (01:15ч) | 280 (0118ч) | 283 (011Бч) |
Режимы 264–268 — это текстовые режимы. 264 (0108h) — 80 столбцов × 60 строк (80 × 60), 265 (0109h) — 132 × 25, 266 (010Ah) — 132 × 43, 267 (010Bh) — 132 × 50 и 268 (010Ch) — 132 × 60.
Текстовые режимы | Столбцы | |
---|---|---|
Строки | 80 | 132 |
25 | 265 (0109ч) | |
43 | 266 (010 Ач) | |
50 | 267 (010Бч) | |
60 | 264 (0108ч) | 268 (010Ч) |
Другие общедоступные графические режимы
[ редактировать ]В таблице ниже объединены режимы, определенные VESA (значения обозначены черным цветом), а также широко используемые режимы, которые могут работать не на всех видеокартах, поскольку они не определены ни одним стандартом ( обозначено красным ).
Графические режимы | 320×200 | 640×400 | 640×480 | 800×500 | 800×600 | 896×672 | 1,024×640 | 1,024×768 | 1152 ×720 | 1280 × 1024 | 1360 ×768 | 1440 ×900 | 1600 × 1200 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16-цветная палитра | [6] | [6] | 258 (0102ч), 106 (6 Ач) |
260 (0104ч) | 262 (0106ч) | ||||||||
256-цветная палитра | [6] | 256 (01:00) | 257 (0101ч) | 367 (016Fh) | 259 (0103ч) | 303 (012Fh) | 362 (016 Ач) | 261 (0105ч) | 357 (0165ч) | 263 (0107ч) | 352 (0160ч) [7] | 284 (011Ч) | |
15-битный (5:5:5) | 269 (010Dh) | 289 (0121ч) | 272 (01:10ч) | 368 (0170ч) | 275 (01:13ч) | 304 (01:30ч) | 363 (016Бч) | 278 (0116ч) | 358 (0166ч) | 281 (0119ч) | 353 (0161ч) | 285 (011Dh) | |
16-битный (5:6:5) | 270 (010Эх) | 290 (0122ч) | 273 (0111ч) | 369 (0171ч) | 276 (01:14ч) | 305 (0131ч) | 364 (016Ч) | 279 (0117ч) | 359 (0167ч) | 282 (011Ач) | 978 (03д2ч) | 354 (0162ч) | 286 (011Эх) |
24-битный (8:8:8) | 271 (010Fh) | 291 (0123ч) | 274 (01:12ч) | 370 (0172ч) | 277 (01:15ч) | 306 (0132ч) | 365 (016-й) | 280 (0118ч) | 360 (0168ч) | 283 (011Бч) | 355 (0163ч) | 287 (011Fh) | |
32-битный (8:8:8) [8] | 292 (0124ч) | 297 (0129ч) | 371 (0173ч) | 302 (012Эх) | 307 (0133ч) | 366 (016Эх) | 312 (01:38ч) | 361 (0169ч) | 317(013Dh) | 980 (03д4ч) | 356 (0164ч) | 322 (0142ч) [9] |
Обнаружение режима
[ редактировать ]Было написано несколько инструментов для обнаружения режимов VBE, доступных в системе. Обычно они работают путем вызова функции 01h , что более надежно, чем использование таблицы расширенных режимов, поскольку она является частью самодокументации устройства.
- hwinfo — это инструмент обнаружения оборудования, используемый в SuSE Linux и некоторых других дистрибутивах Linux . [10] Бег
hwinfo --framebuffer
сообщает графическую информацию, включая режимы VESA, в строке «Режим». - mdt — это инструмент для Linux или DOS , который использует функции VESA BIOS для чтения данных монитора. [11]
- Интерфейс реального режима Linux (LRMI) имеет
vbetest
программа, которая распечатывает информацию VESA. - У SciTech Software было несвязанное
vbetest
для DOS, выпущенной в 1994 году. - Версия GNU GRUB 2 для x86 «ПК» имеет
vbeinfo
команда для распечатки доступных видеорежимов иvbetest
за попытку определенного режима. они используют встроенную таблицу Вместо функции 01h . Для других платформ, включая x86 EFI, они заменяются более общимиvideoinfo
иvideotest
.
Номера видеорежимов Linux
[ редактировать ]Ядро Linux позволяет пользователю выбирать режим VESA во время загрузки, передавая ядру код из памяти. Загрузчик LILO передает этот код на основе параметра «vga» в своем файле конфигурации. Он принимает форму «vga=XXX», где XXX — десятичное значение, или «vga=0xHHH», где HHH — шестнадцатеричное значение. Однако параметр загрузчика vga= не принимает номера видеорежимов VESA напрямую; скорее, номер видеорежима Linux представляет собой номер VESA плюс 512 (в случае десятичного представления) или плюс 0x200 (в случае шестнадцатеричного представления). Например, определенное значение VESA 257 (0x101), представляющее 640x480 и 256 цветов, имеет эквивалентное значение видеорежима Linux 769 (0x301). [12]
Как указывалось ранее, стандарт VESA определяет ограниченный набор режимов; в частности, не рассматриваются ни одно разрешение выше 1280 × 1024 , и вместо этого их реализация является совершенно необязательной для производителей графических адаптеров. Поскольку поставщики могут использовать любые дополнительные значения по своему усмотрению, это означает, что в таблице ниже режимы обозначенный красным цветом (и выраженный в десятичной форме), может применяться не ко всем графическим адаптерам !
320×200 | 640×400 | 640×480 | 800×500 | 800×600 | 896×672 | 1024 ×640 | 1024 ×768 | 1152 ×720 | 1280 ×1,024 | 1400 ×1,050 | 1440 ×900 | 1600 ×1,200 | 1920 × 1080 | 1920 × 1200 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16 цветов | 770 0302ч | 772 0304ч | 774 0306ч | ||||||||||||
256 цветов | 768 0300ч | 769 0301h | 879 036 Фч | 771 0303h | 815 032Фч | 874 036 Ач | 773 0305ч | 869 | 775 0307ч | 835 | 864 | 796 | 893 | ||
15-битный (5:5:5) | 781 030 дирхамов | 801 0321ч | 784 0310ч | 880 0370ч | 787 0313ч | 816 0330ч | 875 036 Госпожа | 790 0316ч | 870 | 793 0319ч | 865 | 797 | |||
16-битный (5:6:5) | 782 030Эч | 802 0322ч | 785 0311h | 881 0371h | 788 0314ч | 817 0331ч | 876 036Ч | 791 0317ч | 871 | 794 031 Ач | 837 | 866 | 798 | ||
24-битный (8:8:8) | 783 030Фч | 803 0323ч | 786 0312ч | 882 0372ч | 789 0315ч | 818 0332ч | 877 036 дирхамов | 792 0318ч | 872 | 795 031 Госпожа | 838 | 867 | 799 | ||
32-битный (8:8:8) 1 | 804 | 809 | 883 | 814 | 819 | 878 | 824 | 873 | 829 | 868 | 834 | 980 03D4h |
1: 32-бит на самом деле (8:8:8:8), но итоговое 8-битное число — это «пустой» альфа-канал. В противном случае он равен 24-битному цвету. Многие графические процессоры используют 32-битный цветовой режим вместо 24-битного просто для более быстрого доступа к видеопамяти за счет 32-битного выравнивания памяти.
VGA= 864 [ 352 (0160h)] также позволяет выбрать разрешение 1280 × 800 (8 бит) для дисплеев различных ноутбуков.
VGA= 834 [322 (0142h)] — 1400 × 1050.
Доступные режимы в Parallels
[ редактировать ]Эмуляция VESA BIOS в виртуальной машине Parallels имеет другой набор нестандартных режимов VESA. Начиная со сборки 3214, LRMI vbetest показывает следующие режимы:
640×400 | 640×480 | 720×480 | 800×500 | 800×600 | 896×672 | 1024 ×640 | 1024 ×768 | 1152 ×720 | 1280 ×1,024 | 1440 ×900 | 1600 ×1,200 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
256 цветовая палитра | 256 (01:00) | 257 (0101ч) | 367 (016Fh) | 364 (016Ч) | 259 (0103ч) | 297 (0129ч) | 358 (0166ч) | 261 (0105ч) | 355 (0163ч) | 263 (0107ч) | 352 (0160ч) | 284 (011Ч) |
15-битный (5:5:5) | 272 (01:10ч) | 275 (01:13ч) | 278 (0116ч) | 281 (0119ч) | 285 (011Dh) | |||||||
16-битный (5:6:5) | 289 (0121ч) | 273 (0111ч) | 368 (0170ч) | 365 (016-й) | 276 (01:14ч) | 298 (012 Ач) | 359 (0167ч) | 279 (0117ч) | 356 (0164ч) | 282 (011Ач) | 353 (0161ч) | 286 (011Эх) |
24-битный (8:8:8) | 290 (0122ч) | 274 (01:12ч) | 369 (0171ч) | 366 (016Эх) | 277 (01:15ч) | 299 (012Бч) | 360 (0168ч) | 280 (0118ч) | 357 (0165ч) | 283 (011Бч) | 354 (0162ч) | 287 (011Fh) |
Режимы, доступные в VirtualBox
[ редактировать ]Эмуляция VESA BIOS в виртуальной машине VirtualBox имеет другой набор нестандартных режимов VESA. Начиная с версии 6.1.38_Ubuntu, сборка r153438, функция VESA BIOS AX=0x4F01 раскрывает следующие режимы (см. также VBETables-gen.c ):
320x200 | 640×400 | 640×480 | 800×600 | 1024 ×768 | 1152 ×864 | 1280 ×1024 | 1600 ×1200 | |
---|---|---|---|---|---|---|---|---|
4-битная палитра | 260
(01:04ч) |
262
(01:06ч) |
||||||
256 цветовая палитра | 326
(01:46ч) |
256
(01:00) |
257
(0101ч) |
259
(0103ч) |
261
(01:05ч) |
328
(01:48ч) |
263
(01:07ч) |
|
15-битный (5:5:5) | 269
(010дх) |
272
(01:10ч) |
275
(01:13ч) |
278
(01:16ч) |
329
(01:49ч) |
281
(01:19ч) |
||
16-битный (5:6:5) | 270
(010э) |
273
(01:11ч) |
276
(01:14ч) |
279
(01:17ч) |
330
(014ah) |
282
(011Ах) |
||
24-битный (8:8:8) | 271
(010фч) |
274
(01:12ч) |
277
(01:15ч) |
280
(01:18ч) |
331
(014бх) |
283
(011Бх) |
||
32-битный (x:8:8:8) | 320
(01:40ч) |
321
(01:41ч) |
322
(01:42ч) |
323
(01:43ч) |
324
(01:44ч) |
332
(014ч) |
325
(01:45ч) |
327
(01:47ч) |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Что такое efifb? — Документация по ядру Linux» . ядро.орг . Проверено 24 ноября 2020 г.
- ^ «Что такое vesafb? — Документация по ядру Linux» . ядро.орг . Проверено 24 ноября 2020 г.
- ^ «Стандартное РАСШИРЕНИЕ SUPER VGA BIOS # VS891001 › Gemixtes» . 11 декабря 2013 года. Архивировано из оригинала 11 декабря 2013 года . Проверено 27 декабря 2022 г.
- ^ «VBE Версия 1.2» . 22 октября 1991 года. Архивировано из оригинала 14 января 2009 года . Проверено 27 декабря 2022 г.
- ^ «Стандарт VBE/Core 2.0» . 11 декабря 2008 г. Архивировано из оригинала 11 декабря 2008 г. Проверено 27 декабря 2022 г.
- ^ Перейти обратно: а б с Режимы доступны через традиционный 10-часовой вызов BIOS
- ^ 352 (0160h) также выбирает разрешение 1280 × 800 (8 бит) для дисплеев различных ноутбуков.
- ^ На самом деле 32-битное (8:8:8:8), но последнее 8-битное число представляет собой «пустой» альфа-канал. В противном случае он равен 24-битному цвету. Многие графические процессоры используют 32-битный цветовой режим вместо 24-битного просто для более быстрого доступа к видеопамяти за счет 32-битного выравнивания памяти .
- ^ 322 (0142h) — 1400×1050.
- ^ исходный код hwinfo на GitHub
- ^ «мдт» . Гитхаб .
- ^ См. документацию по ядру в Documentation/svga.txt и Documentation/fb/vesafb.txt .
Дальнейшее чтение
[ редактировать ]- VESA Super VGA BIOS Extension 1.0 (Standard # VS891001) 1 October 1989
- VESA BIOS Extension 1.2
- VESA BIOS Extension 2.0
- VESA BIOS Extension 3.0
- Доктор Добб изучает спецификацию VESA VBE 2.0
- Как использовать Super VGA (VESA 1.x нелинейный)
- Стандарт последовательного интерфейса управления расширением VESA BIOS на Wayback Machine (архивировано 21 декабря 2005 г.)
- Функции расширения/ускорителя VESA BIOS (VBE/AF) на Wayback Machine (архивировано 9 декабря 2008 г.)
- Интерфейс VESA BIOS
Внешние ссылки
[ редактировать ]- SuperVGA/VESA programmer's notes
- List of VESA VBE 2.0/3.0 implementing chipsets
- Захват информации о режиме VBE. Исходный пакет vbespy. Архивировано 22 июля 2011 г. на Wayback Machine.
- Как использовать исходный пакет vbespy
- VBETOOL - (пока в архиве) приложение для выполнения кода BIOS видеокарты.