VESA BIOS Extensions ( 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 году. VBE 1.1 (VS900602) был определен в 1990 году. VBE 1.2 (VS911022) был определен в 1991 году. Эти версии 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 (ядро VBE) 2.0 [ноябрь 1994 г.]
Этот стандарт обеспечивает основные функции расширений VESA BIOS. Он позволяет приложениям определять возможности видеокарты и дает возможность устанавливать найденные режимы отображения. VBE 2.0 добавляет некоторые новые функции по сравнению с предыдущим стандартом VBE 1.2, включая доступ к линейному буферу кадра и защищенный режим банкинга. Некоторые из функций VBE Core 2.0 включают:
- Линейный доступ к кадровому буферу
- Обеспечивает прямой доступ к кадровому буферу в защищенном режиме как к одной большой области памяти вместо менее эффективных меньших фрагментов.
- Банкинг в защищенном режиме
- Разрешает доступ к фреймбуферу из защищенного режима без «переключения» в реальный режим . Это реализовано с помощью новой функции 0Ah .
- Переворот страницы Super VGA
- Позволяет более производительную анимацию обеспечивать плавную анимацию для компьютерных игр и других высокопроизводительных графических программ.
- Виртуальные экраны Super VGA
- Позволяет программному обеспечению устанавливать разрешение виртуального дисплея , превышающее фактическое отображаемое разрешение, и плавно прокручивать или перемещать увеличенное изображение.
- Режимы High Color и TrueColor
- Стандартные 16-битные и 24-битные графические режимы для разрешений от 320 × 200 до 1600 × 1200 .
Расширения VESA BIOS (ядро VBE) 3.0 [сентябрь 1998 г.]
Надмножество стандарта VBE 2.0. Этот стандарт добавляет к стандарту VBE 2.0 управление частотой обновления , возможности для стереоочков , улучшенную мультибуферизацию и другие функции.
- Тройная буферизация
- Позволяет высокоскоростным приложениям выполнять мультибуферизацию с меньшим мерцанием экрана и без ожидания графического контроллера.
- Контроль частоты обновления с использованием таймингов GTF
- Это позволяет приложениям и утилитам операционной системы стандартным образом изменять частоту обновления на всех графических контроллерах VBE 3.0. Это важно для приложений со стереозвуком, поскольку при включении стереозвука эффективная частота обновления пользователя уменьшается вдвое.
- Стерео перелистывание страниц
- При просмотре приложения с помощью стерео очки , программное обеспечение должно перелистывания в два раза чаще, чем нормальный, потому что он должен генерировать отдельные изображения для каждого глаза. Эта новая функция позволяет программному обеспечению, совместимому со стереозвуком, отображаться правильно.
- Аппаратная стереосинхронизация
- Позволяет программному обеспечению стерео определять, есть ли на видеокарте пользователя разъем для стереоочков.
Новая «точка входа в защищенный режим» была добавлена в качестве альтернативы функции 0Ah .
VBE / функции ускорителя (VBE / AF) [август 1996 г.]
VBE / AF предоставляет стандартный интерфейс низкого уровня для общих функций ускорения, доступных на большинстве аппаратных средств. Некоторые из функций, определенных в стандарте, включают доступ к аппаратным курсорам, передачу битовых блоков (Bit Blt), спрайты за пределами экрана , аппаратное панорамирование, рисование и другие функции. Определен для работы в защищенном режиме.
Дополнительные спецификации
Дополнительные спецификации обеспечивают независимый от устройства интерфейс между прикладным программным обеспечением и оборудованием Super VGA. Номера функций назначаются Комитетом по стандартам программного обеспечения VESA (SSC).
Расширения управления питанием (PM)
DPMS - это аппаратный стандарт, который позволяет видеокартам обмениваться данными с DPMS-совместимыми мониторами через специальную систему сигнализации, которую можно использовать с существующими графическими контроллерами и кабелями монитора. Эта система сигнализации позволяет видеокарте сообщать монитору о переходе в различные состояния управления питанием или энергосбережения, что позволяет монитору отключаться, когда он не используется.
Расширения интерфейса плоской панели (FP)
Обеспечивает доступ к специальным функциям контроллеров с плоской панелью.
Расширения аудиоинтерфейса (AI)
Предоставляет стандарт аудиоуслуг.
В настоящее время (версия 1.00) спецификация VBE / AI определяет три класса устройств: WAVE, MIDI и VOLUME. Не покрываемые типы устройств:
- CDROM контроль
- который входит в состав Microsoft CD-ROM Extensions .
- Процессоры эффектов
- Этот класс устройств будет расширен в будущей версии спецификации 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 (0102h), 106 (6Ah) | 260 (0104h) | 262 (0106h) | |||
256-цветная палитра | 256 (0100 ч) | 257 (0101h) | 259 (0103ч) | 261 (0105h) | 263 (0107h) | |
15-бит (5: 5: 5) | 269 (010Dh) | 272 (0110 ч) | 275 (0113 ч) | 278 (0116h) | 281 (0119h) | |
16-бит (5: 6: 5) | 270 (010Eh) | 273 (0111h) | 276 (0114h) | 279 (0117h) | 282 (011Ач) | |
24-бит (8: 8: 8) | 271 (010Fh) | 274 (0112 ч) | 277 (0115 ч) | 280 (0118h) | 283 (011Bh) |
Режимы 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 (0109h) | |
43 год | 266 (010 Ач) | |
50 | 267 (010Bh) | |
60 | 264 (0108h) | 268 (010Ч) |
Другие общедоступные графические режимы
В приведенной ниже таблице объединены режимы, определенные VESA (значения обозначены черным цветом), с обычно используемыми режимами, но которые могут работать не на всех видеокартах, поскольку они не определены никаким стандартом ( обозначены красным ).
Графические режимы | 320 × 200 | 640 × 400 | 640 × 480 | 800 × 500 | 800 × 600 | 896 × 672 | 1024 × 640 | 1024 × 768 | 1152 × 720 | 1280 ×1024 | 1360 × 768 | 1440 × 900 | 1600 ×1200 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16-цветная палитра | [3] | [3] | 258 (0102h), 106 (6Ah) | 260 (0104h) | 262 (0106h) | ||||||||
256-цветная палитра | [3] | 256 (0100 ч) | 257 (0101h) | 367 (016Fh) | 259 (0103ч) | 303 (012Fh) | 362 (016Ач) | 261 (0105h) | 357 (0165h) | 263 (0107h) | 352 (0160h) [4] | 284 (011Ч) | |
15-бит (5: 5: 5) | 269 (010Dh) | 289 (0121ч) | 272 (0110 ч) | 368 (0170 ч) | 275 (0113 ч) | 304 (0130 ч) | 363 (016Bh) | 278 (0116h) | 358 (0166h) | 281 (0119h) | 353 (0161h) | 285 (011Dh) | |
16-бит (5: 6: 5) | 270 (010Eh) | 290 (0122 ч) | 273 (0111h) | 369 (0171h) | 276 (0114h) | 305 (0131 ч) | 364 (016Ч) | 279 (0117h) | 359 (0167h) | 282 (011Ач) | 978 (03d2h) | 354 (0162h) | 286 (011Eh) |
24-бит (8: 8: 8) | 271 (010Fh) | 291 (0123ч) | 274 (0112 ч) | 370 (0172 ч) | 277 (0115 ч) | 306 (0132 ч) | 365 (016Dh) | 280 (0118h) | 360 (0168h) | 283 (011Bh) | 355 (0163h) | 287 (011Fh) | |
32-бит (8: 8: 8) [5] | 292 (0124h) | 297 (0129ч) | 371 (0173h ) | 302 (012Eh) | 307 (0133 ч) | 366 (016Eh) | 312 (0138h) | 361 (0169h) | 317 (013Dh) | 980 (03d4h) | 356 (0164h) | 322 (0142h) [6] |
Обнаружение режима
Было написано несколько инструментов для обнаружения режимов VBE, доступных в системе. Обычно они работают, вызывая функцию 01h , что более надежно, чем использование таблицы расширенных режимов, поскольку она является частью самодокументирования устройства.
- hwinfo - это инструмент для обнаружения оборудования, используемый в SuSE Linux и некоторых других дистрибутивах Linux . [7] В
hwinfo --framebuffer
строке «Режим» отображается графическая информация, включая режимы VESA. - mdt - это инструмент для Linux или DOS , который определяет поддержку VBE и распечатывает информацию о видео BIOS. [8]
- Интерфейс реального режима Linux (LRMI) имеет
vbetest
программу, которая распечатывает информацию VESA. - У SciTech Software не было никакого отношения
vbetest
к DOS, которое восходит к 1994 году. - Версия x86 для ПК GNU GRUB 2 имеет
vbeinfo
команду для распечатки доступных видеорежимов иvbetest
для пробного использования определенного режима. Они используют встроенную таблицу вместо Funcion 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). [9]
Как указывалось ранее, стандарт VESA определяет ограниченный набор режимов; в частности, ни один из вышеперечисленных1280 ×1024 покрываются, и, вместо этого, их реализация не является обязательной для производителей графических адаптеров. Поскольку поставщики могут использовать любые дополнительные значения по своему усмотрению, это означает, что в приведенной ниже таблице режимы, обозначенные красным (и выраженные в десятичной форме), могут не применяться к вашему графическому адаптеру !
320 × 200 | 640 × 400 | 640 × 480 | 800 × 500 | 800 × 600 | 896 × 672 | 1024 × 640 | 1024 × 768 | 1152 × 720 | 1280 × 1024 | 1400 × 1050 | 1440 × 900 | 1600 × 1200 | 1920 ×1200 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
16 цветов | 770 0302h | 772 0304h | 774 0306h | |||||||||||
256 цветов | 768 03:00 | 769 0301h | 879 036Fh | 771 0303h | 815 032Fh | 874 036Ач | 773 0305h | 869 | 775 0307h | 835 | 864 | 796 | 893 | |
15-бит (5: 5: 5) | 781 030Dh | 801 0321h | 784 0310h | 880 0370h | 787 0313h | 816 03:30 | 875 036Bh | 790 0316h | 870 | 793 0319h | 865 | 797 | ||
16-бит (5: 6: 5) | 782 030Eh | 802 0322h | 785 0311h | 881 0371h | 788 0314h | 817 0331h | 876 036Ч | 791 0317h | 871 | 794 031Ач | 837 | 866 | 798 | |
24-бит (8: 8: 8) | 783 030Fh | 803 0323h | 786 0312h | 882 0372h | 789 0315 ч. | 818 0332h | 877 036Dh | 792 0318h | 872 | 795 031Bh | 838 | 867 | 799 | |
32-бит (8: 8: 8) 1 | 804 | 809 | 883 | 814 | 819 | 878 | 824 | 873 | 829 | 868 | 834 |
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 × 1024 | 1440 × 900 | 1600 × 1200 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
256 цветовая палитра | 256 (0100 ч) | 257 (0101h) | 367 (016Fh) | 364 (016Ч) | 259 (0103ч) | 297 (0129ч) | 358 (0166h) | 261 (0105h) | 355 (0163h) | 263 (0107h) | 352 (0160 ч) | 284 (011Ч) |
15-бит (5: 5: 5) | 272 (0110 ч) | 275 (0113 ч) | 278 (0116h) | 281 (0119h) | 285 (011Dh) | |||||||
16-бит (5: 6: 5) | 289 (0121ч) | 273 (0111h) | 368 (0170 ч) | 365 (016Dh) | 276 (0114h) | 298 (012Ач) | 359 (0167h) | 279 (0117h) | 356 (0164h) | 282 (011Ач) | 353 (0161h) | 286 (011Eh) |
24-бит (8: 8: 8) | 290 (0122 ч) | 274 (0112 ч) | 369 (0171h) | 366 (016Eh) | 277 (0115 ч) | 299 (012Bh) | 360 (0168h) | 280 (0118h) | 357 (0165h) | 283 (011Bh) | 354 (0162h) | 287 (011Fh) |
Смотрите также
- nouveau (программное обеспечение)
- UniVBE
- SciTech Display Doctor
Рекомендации
- ^ «Что такое efifb? - Документация ядра Linux» . kernel.org . Проверено 24 ноября 2020 года .
- ^ «Что такое vesafb? - Документация ядра Linux» . kernel.org . Проверено 24 ноября 2020 года .
- ^ a b c Режимы, доступные через традиционный 10-часовой вызов BIOS
- ^ 352 (0160h) также появляется для выбора1280 × 800 (8 бит) для дисплеев различных ноутбуков
- ^ На самом деле 32-битное число (8: 8: 8: 8), но последнее 8-битное число является «пустым» альфа-каналом. В противном случае он равен 24-битному цвету. Многие графические процессоры используют 32-битный цветовой режим вместо 24-битного просто для более быстрого доступа к видеопамяти за счет 32-битного выравнивания памяти .
- ^ 322 (0142h) - это 1,400 × 1050
- ^ Исходный код hwinfo на GitHub
- ^ "мдт" . GitHub .
- ^ См. Документацию по ядру в Documentation / svga.txt и Documentation / fb / vesafb.txt .
дальнейшее чтение
- VESA Super VGA BIOS Extension 1.0 (Standard # VS891001) 1 октября 1989 г.
- Расширение VESA BIOS 1.2
- Расширение VESA BIOS 2.0
- Расширение VESA BIOS 3.0
- Доктор Добб изучает спецификацию VESA VBE 2.0
- Как использовать Super VGA (VESA 1.x Non-Linear)
- Стандарт последовательного интерфейса управления расширением VESA BIOS на Wayback Machine (индекс архива)
- Функции VESA BIOS Extension / Accelerator (VBE / AF) на Wayback Machine (индекс архива)
- Интерфейс VESA BIOS
Внешние ссылки
- Замечания программиста SuperVGA / VESA
- Список чипсетов, реализующих VESA VBE 2.0 / 3.0
- Захват информации о режиме VBE исходный пакет vbespy
- Как использовать пакет с исходным кодом vbespy
- VBETOOL - (пока что заархивированное) приложение для выполнения кода BIOS видеокарты