|
8 / 8 / 5
Регистрация: 28.03.2014
Сообщений: 137
|
|
Способы переключения видео режимов на современных видеокартах в защищенном режиме24.08.2015, 09:57. Показов 5830. Ответов 51
Метки нет (Все метки)
Давайте обсуждать способы переключения видео режимов на современных видеокартах в защищенном режиме.
Кто может, выкладывайте маны или код.
0
|
|
| 24.08.2015, 09:57 | |
|
Ответы с готовыми решениями:
51
Прерывания в защищенном режиме |
|
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
|
|
| 24.08.2015, 12:40 | |
|
а что обсуждать? смотрите сорцы существующих опенсорсных осей.
2
|
|
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
|
| 24.08.2015, 16:16 | |
|
Мда, я вроде в скайпе уже написал, но ты упорно продолжаешь гнуть свою линию.
Еще раз: 1. Документацию на современные карты ты не найдешь. Исключение - intel'овская встроенная графика. Но и там для новых не все описано. 2. Низкоуровневая работа с графическим контроллером, тем более с современным gpu - это самое сложное, что вообще есть в железе PC'ка. С твоим уровнем лучше не начинать. 3. Никакой совместимости нету даже между контроллерами одного производителя. Обычно в каждом новом поколении все меняется. Вот для примера мои потуги(хотя вроде уже давал ссылку тебе) для семейства R600-R700 (и то не на всех работает). 4. Да, есть открытые исходники для *nix. Но они во-первых имеют урезанный функционал (по сравнению с проприетарной версией), во-вторых, что бы там хоть что-то понять, нужно знать архитектуру таких вещей как, например, DRM в линухе. На надейся там удивить в исходниках драйвера функцию типа SetVideoMode(w, h, bpp) - не будет ее. Там куча уровней абстракций. Вывод: Используй VBE и займись более приоритетными для ОС вещами.
2
|
|
|
435 / 246 / 43
Регистрация: 05.08.2013
Сообщений: 1,670
|
|
| 25.08.2015, 13:49 | |
|
я когда писал свою поделку юзал vbe и только текстовый режим. благо груб умеет устанавливать желаемый видеомод.
0
|
|
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
||
| 25.08.2015, 16:39 | ||
|
0
|
||
|
8 / 8 / 5
Регистрация: 28.03.2014
Сообщений: 137
|
|
| 27.08.2015, 00:10 [ТС] | |
|
Буду использовать vbe с виртуальной машиной(аналог v86 режима)
0
|
|
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
|
| 27.08.2015, 01:33 | |
|
Сравнивать виртуальную машину и режим работы процессора, мягко говоря, не корректно.
0
|
|
|
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
|
||
| 30.08.2015, 09:28 | ||
|
0
|
||
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
||
| 30.08.2015, 10:02 | ||
|
Добавлено через 4 минуты Для полноценной поддержки нужен драйвер, причем уникальный для каждой ОС. Ну чисто для переключения видеорежимов (и то не всех) можно использовать VGA BIOS включая VBE. Он да, прописан прямо в в карточке. Но не более.
0
|
||
|
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
|
|||
| 30.08.2015, 11:53 | |||
![]() Возьмём просто отображение пикселов РГБ + разрешение (а что ещё нужно?). Видеокарта тестирует монитор и находит совместимые с ней режимы, выводит их список (а-ля ВЕЗА) для ОСи. Пикселы рисуются через ОЗУ. Зачем ОСе все прочие навороты? Добавлено через 17 минут Да, кстати, и это выполняет не видеокарта, а БИОС-код, который вроде бы крайне неудобен в защищённом режиме. Добавлено через 13 минут И в случае возможности включения всех поддерживаемых картой-монитором видеорежимов (без всяких там многомониторностей, стерео, старых режимов) относительно простым способом и такой же простой работы с ними вопрос топика становится исчерпарным, не так ли?
0
|
|||
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
|||||||
| 30.08.2015, 19:10 | |||||||
|
исходя из чего варианты работы (в порядке сложности): 1. перед входом в PM установить нужный режимы с LFB и забыть. 2. для переключения кратковременно выйти в RM и вернуться обратно. 3. Использовать V86. 4. Написать (или 5. Использовать технологию виртуализации. выбирай понравившийся. Добавлено через 12 минут Если карта внешняя (PCI-e, AGP), видеопамять отображается как обычный MMIO. Следовательно скорость записи соответствующая - т.е. очень медленно и огромная нагрузка на ЦП для вывода графики. Укорить это штатными средствами никак. Чтобы современные карточки "брали" данные из RAM (не VRAM) нужно инициализировать GART - это адски сложно и бесполезно: для каждого семейства карт придется писать свой код.
1
|
|||||||
|
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
|
|||
| 31.08.2015, 13:29 | |||
![]()
0
|
|||
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
||||
| 31.08.2015, 14:16 | ||||
|
Не по теме: Почему на этом форуме практически все меня читают по диагонали?:(
0
|
||||
|
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
|
||
| 05.09.2015, 21:43 | ||
|
0
|
||
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
|
| 06.09.2015, 11:10 | |
|
panotnap,
1. Формирование изображения нужно проводить ТОЛЬКО В ОБЫЧНОЙ ПАМЯТИ. 2. В LFB нужно копировать ТОЛЬКО ИЗМЕНИВШУЮСЯ ЧАСТЬ ИЗОБРАЖЕНИЯ. 3. Должен присутствовать буфер глубины, чтобы не закрашивать одну часть изображения по 40 раз. Ну и ещё при копировании лучше всего использовать инструкцию rep movsd, но это, думаю, не секрет. Если следовать этим принципам, то ГУЙ будет рисоваться быстро и без мерцаний. Да и не только гуй. У колибри даже демки ОпенЖЛ без дров на пне четвертом 2.4ггц старого образца(там ещё нет гипертридинга) при разрешении 1024x768 рисовались с ~30 фпс. Память была ддр1, а шина видео - АГП. Думаю, это о чем-то говорит. Сейчас память в разы шустрее, как и процессоры.
0
|
|
|
31 / 31 / 5
Регистрация: 24.09.2014
Сообщений: 243
|
|
| 06.09.2015, 15:48 | |
|
Не надо капслочить. Спасибо, но это не секреты... А кроме "ГУЯ"
есть ещё перемещение равёрнутого окна, воспроизведение видео и рендеринг игр, где всё вышеперечисленное не поможет.
0
|
|
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
|
| 06.09.2015, 16:05 | |
|
panotnap, перемещение развернутого окна нормально отрисуется. Воспроизведение видео в той же колибри работает нормально, вроде как, и без дров. Думаю, декодинг работает не в реальном времени, а используется предварительная буферизация распакованных кадров. Спрайтовые игры без шейдерных спецэффектов в реальном времени нормально заведутся. Вот что-то сложное уже создаст проблемы, но, если на твою ОС нет видеодров, то и игры с супер-графоном вряд ли есть, поэтому нет смысла пыхтеть и искать дрова на граф. ускорители.
0
|
|
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
|||||
| 06.09.2015, 16:50 | |||||
|
Добавлено через 3 минуты
0
|
|||||
|
1127 / 261 / 9
Регистрация: 11.06.2010
Сообщений: 1,049
|
|
| 06.09.2015, 16:53 | |
|
shmkv, ну в случае с пнем четвертым карта была внешней geforce 5200 fx. Да и тесты на современных внешних видео покпзывают, что скорость действительно выше. Правда, не в разы
0
|
|
|
1378 / 522 / 72
Регистрация: 21.07.2015
Сообщений: 1,308
|
|
| 06.09.2015, 16:55 | |
|
Кстати в колибри большинство их демок рендерят кадры с bpp=24, это к вопросу о rep movsd.
0
|
|
| 06.09.2015, 16:55 | |
|
Помогаю со студенческими работами здесь
20
Принципы адресации в защищенном режиме Удаленный доступ в защищенном режиме Не обрабатываются прерывания в защищенном режиме Работа с файлами в защищенном режиме Размер программы в защищенном режиме Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|