Есть ли в XWindow функции/флаги для сихронизации с обратным ходом луча ? Имеется ввиду без GL и привязки к конкретным картам. Желательно in/out тоже не юзать, чтобы было полностью системно так сказать. Чтонибудь типа XVSync() быть может или чтото такого плана ?
Вот нашел такое: http://www.complang.tuwien.ac.at/sk...dly_xfre e86/eyefriendly_xfree86-1.0.2.tar.gz в readme написано мол: This little demo shows how to do flicker-free animations without the effect of tearing on XFree86. This little demo illustrates how an XFree86-extension (XF86VidMode) can be used to synchronize with the vertical retrace (vblank). Unfortunately, this trick does not work with all video-drivers. Т.е. можно посмотреть в сторону ViewPort.. но если это не везде будет работать то хреново .. Может чтонить организовать типа double buffering ? Основная проблема у меня в том, что при скроле текста у меня ужасное мигание такое .. вот как бы и думаю если с лучом его синхрить все будет ок.
Нет и почти наверняка никогда не будет. По той простой причине, что вывод с иксового сервера может осуществляться на устройство далеко в сети. И вообще пора забыть про слова "ход луча" - мониторы давно уже не только CRT.
Ход луча полезен и на LCD мониторах И синхронизация по VSync как-то возможна, т.к. wine эмулирует WaitForVerticalBlank.
kas1e Ага, пока сигнал синхронизации попадёт на удалённый терминал, "луч" неоднократно успеет пройтись по фосфору Он наверняка обращается к харду непосредственно, в обход сервера X.
S_T_A_S_ Ход луча полезен и на LCD мониторах Абсолютно бесполезен. И синхронизация по VSync как-то возможна, т.к. wine эмулирует WaitForVerticalBlank. А разве это не монитор его эмулирует? Чтобы обеспечить работоспособность окаменевших фекалий, без вариантов ожидающих наступления пресловутого "обратного хода".
CyberManiac > Моё утверждение про полезность VSync основывается на опыте Ну а кому нравятся jerking эффекты, пусть их наблюдает =) > При использовании DVI монитор похоже синхронизирует обновление по какому-то внутреннему источнику, и из-за этого видно косяки на правильно синхронизированной програмными средствами анимации (по крайней мере, на моём мониторе ) Как там обстоят дела в *nix не знаю, но в виндосе WaitForVerticalBlank реалезован на уровне драйвера видеокарты. которая собственно и генерирует синхросигналы для монитора. Даже GDI по возможности использует синхронизацию.
S_T_A_S_ Моё утверждение про полезность VSync основывается на опыте Опыт проводился со всем существующим спектром устройств видеовывода? А ведь их много: плазма, проекторы, намордники ВР, да просто сетевые терминалы. При использовании DVI монитор похоже синхронизирует обновление по какому-то внутреннему источнику, и из-за этого видно косяки на правильно синхронизированной програмными средствами анимации Значит, она синхронизирована _неправильно_ по определению Может, не стоило возиться с самостоятельной синхронизацией, а надо было переложить весь геморрой на ОС/драйвера? Факт то, что единственное, где я в Линухе видел синхронизацию по VSync - это в фирменном драйвере nVidia, и я ее вырубил нафиг, чтобы не тормозила Хотя где-нибудь в дебрях драйверов, входящих в состав Иксов она тоже может присутствовать для внутреннего употребления. Как там обстоят дела в *nix не знаю, но в виндосе WaitForVerticalBlank реалезован на уровне драйвера видеокарты. Важно не то, где реализовано ожидание (в ДОС это ожидание вообще делалось вручную и не удивлюсь, если и в Винде опрашивается тот же самый порт, который опрашивали 10 лет назад), важно то, откуда вообще берется "беганье луча, которого нет", особенно на DVI-устройствах, на которых физика монитора полностью отвязана от цифрового сигнала.
CyberManiac > А какая разница, весь или не весь? Мне кажется в любом случае лучше, если картинка обновляется через равные промежутки времени, чем когда придётся. > Тот же самый монитор в аналоговом режиме нормально отображал, а при использовании DVI наблюдался эффект, как при сьёмке экрана ТВ видеокамерой, только несовпадение частот было оч маленьким, поэтому "хреновая" линия проезжала медленно и плавно Думаю, в мониторе свой генератор, и он просто выбирает ближайшую подходящую частоту из дискретных возможных значений. не понятно, почему бы не перезапускать генератор по каждому VSync. > Да, писюк это жуткое устройство, вот в Спеке единственное преравание было по VSync, ничего ждать не нужно было Почему бы и сейчас не сделать возможным регистрацию какой-нибудь callback функции, которая будет вызываться каждый кадр, многие вещи были бы проще, а не через [beep]
S_T_A_S_ А какая разница, весь или не весь? Мне кажется в любом случае лучше, если картинка обновляется через равные промежутки времени, чем когда придётся. Так ведь это... Сам же жаловался, что синхронизация по лучу - "правильная", а на DVI - артефакты. А скорее всего при подключенном на DVI девайсе видеокарта и эмулирует VSync, просто выдавая в порт сигнал через определенные промежутки времени, а что там на ЛСД-матрице нарефрешилось - это уже другая песня. не понятно, почему бы не перезапускать генератор по каждому VSync. Это надо у спецов по DVI спросить. Может, там обратная связь как таковая не предусмотрена. А может просто данный конкретный монитор или модель монитора с тараканами в мозгах. Почему бы и сейчас не сделать возможным регистрацию какой-нибудь callback функции, которая будет вызываться каждый кадр, многие вещи были бы проще, а не через [beep] Уж лучше двойную буферизацию непосредственно в недрах монитора. И не ожидать VSync или чего-то там еще, а наоборот - сообщать монитору о завершении отрисовки. Что делают на современных видеокартах текстовые режимы - одной НВидии с АТИ известно, в Линухе консоль уже давно во фреймбуфере живет без проблем, а эти рукодельцы все еще совместимость с MDA на кой-то пенис обеспечивают. Но это уже светлые мечты из области "а если выкинуть из процессоров 16-битные режимы, да сделать все команды равной длины, да добавить регистров, чтобы как в Альфе...". Но реально сейчас имеем, что все хреново, зато совместимость со старыми багами не пострадала
CyberManiac ... Как хорошо, что ты не занимаешь какой-нить руководящий пост в нвидиа/ати/микрософт/etc. )
_BC_ Как хорошо, что ты не занимаешь какой-нить руководящий пост в нвидиа/ати/микрософт/etc. ) Что же хорошего? Али протухшие фекальки а-ля CGA-режимы в шестой Гейфорсине так сильно радуют? Нет, тут всю систему надо менять. ЯЯ был бы беспощаден к врагам рейха... Тьфу! Железной рукой ввел бы человечество в светлое будущее... Не, опять не то. Вот: подавив сопротивление ретроградов, преодолев косность и инертность обывательского мышления, обеспечил бы внедрение наиболее передовых и современных технологий на благо всего человечества! Так правильно.
Вот этого я и боялся. Не дай божЕ text-mode исчезнет. Аппаратный курсор и аппаратный знакогенератор куда лучше, нежели это рисование "консоли" в окне по пикселам.