Re[2]: Flip & blitting
От: IgorK Россия  
Дата: 19.07.02 04:13
Оценка:
Здравствуйте Snax, Вы писали:

G>>Народ, помогите с проблемой. Не могу понять почему блитинг и флип

G>>занимают по десятку миллионов тиков на кадр, хотя все поверхности
G>>размещены в видеопамяти. Может кто знает как это ускорить?

S>Ваш вопрос уже содержит ответ: все поверхности размещены в видео памяти,

S>а блитинг и флип осуществляются без участия акселератора,
S>т.е. центральным процессором. Для этого они копируются в системную
S>память, обрабатываются и копируются обратно.

Хотелось бы спросить — а откуда такая информация? Во-первых блит и флип немного разные вещи. Если блиттинг есть копирование куска памяти в другое место, то флип — обычно смена текущего отображаемого буффера (тоже кусок памяти).
Так вот, операция блиттинга сильно зависит от самой видеокарточки. Современные карточки умеют копировать куски памяти у себя на борту и, значит копирование будет произведено без участия процессора. Если видеокарта не умеет сама делать блит — то тут появятся тормоза, т.к. процессору надо будет самому читать из видеопамяти и писать туда. Дело в том что чтение из видеопамяти — вещь довольно тормозная, поэтому Blit будет тормозить.

Теперь с флипом — если железо может (сегодня мало уже таких, которые не могут), то тут даже копирования не происходит. Грубо говоря в видеокарте указатель на начало видеоданных перезаписывается на другой видеобуффер.

А по поводу "обрабатываются" — тоже спорный вопрос :)
Если, в случае с блитом — это можно понимать как обработка color key, то в случае с флипом вообще непонятно чего там обрабатывать. Причем если даже поверхность имеет color key, то есть большая вероятность, что операция произойдет аппаратно (без участия процессора) — проверенно на собственном опыте. Тоже самое можно сказать по поводу stretch.

Спасибо за внимание.

ps: peace ;)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.