Введение

Стандарт программного обеспечения видеокарты VESA BIOS Extensions (VBE) — это стандарт VESA, текущая версия которого — 3, определяющий интерфейс, который может использоваться программным обеспечением для доступа к совместимым видеокартам с высоким разрешением и глубиной цвета. Это в отличие от «традиционных» вызовов BIOS INT 10h, которые ограничены разрешением 640×480 пикселей с глубиной цвета 16 цветов (4 бита) или меньше. VBE предоставляется через BIOS видеокарты, который при загрузке устанавливает некоторые векторы прерываний, указывающие на него самого. Большинство новых карт реализуют более производительный стандарт VBE 3.0. Более ранние версии VBE предоставляют только интерфейс реального режима, который нельзя использовать без значительной потери производительности в операционных системах защищенного режима. Следовательно, стандарт VBE почти никогда не использовался для написания драйверов видеокарт; в результате, каждый производитель должен был разрабатывать собственный проприетарный протокол для связи со своей видеокартой. Несмотря на это, драйвер часто переключается в реальный режим для инициализации режимов экрана и получения прямого доступа к линейному буферу кадров видеокарты, поскольку в противном случае для выполнения этих задач потребовалось бы обрабатывать сотни проприетарных вариаций, существующих от видеокарты к видеокарте. В системах EFI 1.x INT 10H и VESA BIOS Extensions (VBE) заменяются протоколом EFI UGA. В широко используемых системах UEFI 2.x INT 10H и VBE заменяются UEFI GOP.

Ранние 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 – в VBE 1.1, а 08h – в VBE 1.2.

VESA BIOS Extensions (VBE core) 2.0 (ноябрь 1994 года)

Этот стандарт обеспечивает основную функциональность расширений BIOS VESA. Он позволяет приложениям определять возможности графической карты и предоставляет возможность настройки обнаруженных режимов отображения. 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 Extensions (VBE core) 3.0 (сентябрь 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. Типы устройств, не охваченные спецификацией:

Управление CD-ROM, которое регулируется расширениями CD-ROM от Microsoft. Эффекты обработки звука. Этот класс устройств будет расширен в будущих версиях спецификации VBE/AI.

Расширения OEM

Обеспечивает стандартный вход к расширениям, специфичным для поставщика.

Канал данных дисплея (DDC)

Дисплейный канал данных (Display Data Channel, DDC) — это цифровое соединение между компьютерным дисплеем и графическим адаптером, позволяющее дисплею сообщать адаптеру о своих характеристиках. Стандарт был разработан VESA.

Интерфейс последовательного управления (SCI)

Обеспечивает аппаратно-независимый способ для операционной системы и приложений чтения и записи данных по последовательному интерфейсу управления I²C.

Определение режима

Было написано несколько инструментов для обнаружения режимов VBE, доступных в системе. Они обычно работают, вызывая функцию 01h, которая более надежна, чем предположение о таблице расширенных режимов, поскольку это часть самодокументации устройства. hwinfo – инструмент обнаружения оборудования, используемый в SuSE Linux и некоторых других дистрибутивах Linux. Запуск hwinfo с framebuffer выводит графическую информацию, включая режимы VESA на строке "Mode". mdt – это инструмент для Linux или DOS, который использует функции VESA BIOS для чтения данных монитора. Интерфейс Linux Real Mode Interface (LRMI) имеет программу, которая выводит информацию VESA. У SciTech Software была отдельная программа для DOS, датируемая 1994 годом. В x86-версии GNU GRUB 2 для ПК есть команда для вывода доступных видеорежимов и команда для тестирования конкретного режима. Они используют встроенную таблицу вместо функции 01h. Для других платформ, включая x86 EFI, они заменяются более общими функциями и командами.