LINUX.ORG.RU

vsync и framebuffer


0

1

Подскажите как (если это возможно) отследить v-sync (вертикальная синхронизация) в framebuffer device. Нужна функция wait_vsync();

Вы лучше скажите что вам нужно реально а то я подозреваю копаете не в ту сторону и предполагаю что у вас возникает screen tearing на фоне несинхронной записи в буфер и началом обновления экрана. Если речь об LCD панелях то некоторые имеют специальный пин TE который как раз сигнализирует о том что экран закончил обновление, в LCD контроллерах SoC есть специальные прерывания для этого, но это все специфично и напрямую к framebuffer никакого отношения не имеет - нужно смотреть свое железо да и частота обновления экрана намного выше частоты записи в буфер поэтому обычно такого эфект человеческим глазом просто нереально заметить если вы конечно не робокоп :)

anonymous
()
Ответ на: комментарий от anonymous

Если вырисовывать не всю картину то работает быстро, очень медленно работает чтение с framebuffer, подозреваю что для его страниц отключено кеширование чтения. На нем рисую геометрические фигуры в движении, очень хорошо видно как недорисованое изображение сменяется другим, вот и задумался о том как сделать как старом добром ДОСе.

peter_t
() автор топика
Ответ на: комментарий от peter_t

А что за железо ? Просто если вы говорите про видеопамять которая находится в обычной RAM (что характерно для SoC) - там естественно выделяется память когерентная с кешем процессора, потому что требуется одновременный доступ к виртуальной памяти (это тот буфер который виден вам в юзерспейс) и к физической (для контроллера LCD).

anonymous
()
Ответ на: комментарий от peter_t

>Если вырисовывать не всю картину то работает быстро, очень медленно >работает чтение с framebuffer, подозреваю что для его страниц >отключено кеширование чтения.

Еще я подозреваю что делаете вы все через файловый операции read/write - используйте mmap и пишите в память нарямую, при этом во-первых вы исключаете переключение контекста при copy_to/from_user а во вторых исключаете собственно лишнее копирование буфера.

anonymous
()
Ответ на: комментарий от anonymous

монитор: Samsung SyncMaster 205bw (не быстрый) видеокарта: nvidia 8500 gt cpu: intel pentium e6500 ram: ocz 4gb @ 1066 mhz с низкими таймингами. kernel: 2.6.27.27 slax

peter_t
() автор топика
Ответ на: комментарий от peter_t

И на таком мощном железе вы наблюдаете недорисованные фигуры ? чего же вы с ними там делаете :)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.