...а потом моддеры придумали динамическую дистанцию обзора и на gma3150 с модами было почти нормально. Ну, как нормально, в тяжёлых случаях стена тумана подползала на 20м.
С тех пор, как проект mesa развернулся во все поля и интерировал в себя какую то llvm-хреновину - оно по факту не нужно. Там и так есть дрова практически для всего, на чём ядро может нарисовать консоль, так ещё и какой то софтовый отрисовщик oGL прикрутили сбоку, получилось лучше.
С тех пор, как проект mesa развернулся во все поля и интерировал в себя какую то llvm-хреновину
Так это для OpenGL и т.п., если я ничего не путаю. Т.е. оно тупо рендерит, а с железкой общаться всё равно должны иксы. Даже если это тупо фреймбуфер. Он кстати тоже не в вакууме существует, а на базе какого-то стандарта.
Ну, стандарт это видимо драйвер дисплея и кадровый буфер, тот же что и для vt.
Я так понял что Веса каким то образом ускоряла вывод кадров из буфера Х-сервера на видеокарту. Помню только что во всяких ХР без видеодрайвера всё было плохо, но вот как работали линуксы без весы я не застал.
Очевидно что mesa умеет всё то же самое, только ещё и с фейковым openGL. Ну, может быть для этого более сложным способом.
Хотя... Вот в Х11 есть специальный протокол xv для ускоренного вывода видеокадров при софтовой отрисовке. И без него - реально выше нагрузка на цпу у Х-сервера, на RPi3 например куда быстрее упирается в потолок ядра и начинает рвать кадры. Что то там есть такое, что можно сильно спрямить.
Веса каким то образом ускоряла вывод кадров из буфера Х-сервера на видеокарту
Ничего она не ускоряла. Смотри, есть железка. Каким-то хером нужно установить разрешение/битность и отобразить это в виртуальную память. Был дидовский int 10h, потом туда же накидали «расширенные» vesa-режимы. Я хз как конкретно это сейчас работает, но могу предположить что до сих пор какой-то такой стандарт для тупого фреймбуфера поддерживается.
специальный протокол xv для ускоренного вывода видеокадров при софтовой отрисовке
xv если я правильно помню просто позволял лить непосредственно YUV без программного преобразования на CPU. Для чего-то более интересного, вроде декодирования на видяхе, нужен vdpau, или vaapi. Ну или cuda/opencl, на «общих основаниях».
Был дидовский int 10h, потом туда же накидали «расширенные» vesa-режимы.
Вот и странно, что веса как бы и не нужна. Все эти видеорежимы знает ядро и применяет их для vt. Разве что требуется какая то особая прослойка, которая синхронизирует настройки, возьмёт кадровый буфер у Х11 и положит его в кадровый буфер ядра. Но разве это не пара сотен строк кода?
xv если я правильно помню просто позволял лить непосредственно YUV без программного преобразования на CPU
Какой то смысл в этом есть, но потом же один хрен преобразовывать. А xv совершенно точно в 2-3 раза сокращает нагрузку на цпу при именно копировании кадровых буферов.
Что значит «знает»? Конкретной железке нужно посылать конкретные команды по шине. Железки бывают разные. Для этого и нужен драйвер железки. Даже если в ядре, или в биосе есть что-то такое вспомогательное, то иксам всё равно нужно это адаптировать к своему внутреннему протоколу.
думаю мало кто юзал. эта шина была на немногих моделях 486 матерей. из-за примитивности vlb, система часто работала нестабильно с более 1 устройством на этой шине