Страниц: [1]
  Печать  
Автор Тема: Генерация crtc-settings файла для TFT мониторов  (Прочитано 4817 раз)
lestat
QOR.Moderator
*****
Offline Offline

Сообщений: 985


I don't trust anything


Просмотр профиля WWW
« : Февраля 21, 2013, 11:12:34 am »

Помню, что часто возникали проблемы с работой графических драйверов на TFT мониторах с большими разрешениями. Я опубликовал порт UMC утилиты, которая может генерировать правильные параметры для TFT мониторов прямо в формате crtc-settings.

Если для кого актуально, то прошу сюда:
http://community.qnx.com/sf/discussion/do/listPosts/projects.bsp/discussion.experimental_devg_graphics_drive.topc23149

P.S. Ко мне в среднем приходит один заказчик в неделю с просьбой подобрать параметры для его монитора и разрешения, и имея подборку параметров более чем 40 мониторов я заметил, что практически все они используют RBT формулу вместо GTF для своей работы. RBT формула не панацея, но грубо говоря на 39 из 40 мониторов она показала превосходные результаты.
Записан

oder
Гость
« Ответ #1 : Февраля 21, 2013, 03:42:32 pm »

У меня для того нестандартного монитора, что я когда-то тебе в почте писал (800x480x60) не пошло. Sad Картинка влево за край матрицы выехала.
А без --rbt наоборот, правый край выехал да еще и левый край изображения не попал на границу дисплея (смещен вправо).

Утилита сгенерировала
umc 800 480 60 --rbt
xres=800,yres=480,refresh=60,pclock=28250,hpol=1,vpol=0,htotal=960,hblank_start=800,hblank_len=160,hsync_start=848,hsync_len=33,vtotal=494,vblank_start=480,vblank_len=14,vsync_start=483,vsync_len=5

и

/umc 800 480 60
xres=800,yres=480,refresh=60,pclock=30300,hpol=0,vpol=1,htotal=1008,hblank_start=800,hblank_len=208,hsync_start=824,hsync_len=81,vtotal=501,vblank_start=480,vblank_len=21,vsync_start=484,vsync_len=5

в то время, как рабочий вариант получается "покоординатным смешиванием" режимов 800x600 и 640x480 =>  800x480.
xres=800,yres=600,refresh=60,pclock=40000,hpol=1,vpol=1,htotal=1056,hblank_start=800,hblank_len=256,hsync_start=840,hsync_len=128,vtotal=628,vblank_start=600,vblank_len=28,vsync_start=601,vsync_len=4
xres=640,yres=480,refresh=60,pclock=25175,hpol=0,vpol=0,htotal=800,hblank_start=640,hblank_len=144,hsync_start=656,hsync_len=96,vtotal=525,vblank_start=480,vblank_len=45,vsync_start=490,vsync_len=2
xres=800,yres=480,refresh=60,pclock=40000,hpol=1,vpol=1,htotal=1056,hblank_start=800,hblank_len=256,hsync_start=840,hsync_len=128,vtotal=525,vblank_start=480,vblank_len=45,vsync_start=490,vsync_len=2
« Последнее редактирование: Февраля 21, 2013, 03:44:40 pm от oder » Записан
lestat
QOR.Moderator
*****
Offline Offline

Сообщений: 985


I don't trust anything


Просмотр профиля WWW
« Ответ #2 : Февраля 21, 2013, 06:39:28 pm »

У меня для того нестандартного монитора, что я когда-то тебе в почте писал (800x480x60) не пошло. Sad Картинка влево за край матрицы выехала.
А без --rbt наоборот, правый край выехал да еще и левый край изображения не попал на границу дисплея (смещен вправо).
К сожалению матрица не VESA совместимая. Но мы же вроде тогда подобрали параметры, которые пошли нормально? Есть ещё Coordinated Video Timings (--cvt), который поддерживается этой утилитой, но это для VESA совместимых телевизионных матриц.

P.S. Обычно когда уезжает изображение влево или вправо, это связано с полярностью сигнала. Попробуй hpol и vpol задать по очереди: 0 0, 0 1, 1 0, 1 1 - обычно это помогало для старых CRT мониторов.

P.S.S. А в режиме "покоординатного смешивания" получается частота обновления не 60Hz, а 75Hz. В данном случае параметр refresh=60 будет проигнорирован, он больше для информации задаётся.
Записан

oder
Гость
« Ответ #3 : Февраля 21, 2013, 07:01:06 pm »

К сожалению матрица не VESA совместимая. Но мы же вроде тогда подобрали параметры, которые пошли нормально?
Не подобрали, так как мне заказчик так и не прислал вывод той утилиты, что информацию о видео вытаскивает.

P.S. Обычно когда уезжает изображение влево или вправо, это связано с полярностью сигнала. Попробуй hpol и vpol задать по очереди: 0 0, 0 1, 1 0, 1 1 - обычно это помогало для старых CRT мониторов.
Изображение не то чтобы уезжает - оно слишком широкое, просто. И вот, оно по правому краю выровнено нормально, а левый край не помещается.
Записан
lestat
QOR.Moderator
*****
Offline Offline

Сообщений: 985


I don't trust anything


Просмотр профиля WWW
« Ответ #4 : Февраля 21, 2013, 07:12:35 pm »

Изображение не то чтобы уезжает - оно слишком широкое, просто. И вот, оно по правому краю выровнено нормально, а левый край не помещается.
Если широкое, то hblank_len и hsync_len либо завышены, либо полярность сигнала не та.

P.S. Кстати по проблеме с чёрным экраном, я её воспроизвёл в другой среде - судя по всему проблема в GF, я пытаюсь разобраться, но времени сейчас не сильно много. Грубо говоря данные пишутся совсем в другую память, нежели должны писаться. Такое впечатление, что вместо mmap() по адресу был вызван mmap() с флагами выделения анонимной памяти.
Записан

bugmenot
Участник
*
Offline Offline

Сообщений: 30


Просмотр профиля
« Ответ #5 : Июня 05, 2015, 09:04:31 pm »

...прошло 2 года, ссылка на community.qnx.com уже мертвая.
Как сейчас обстоят дела с настройкой нестандартных разрешений экрана в qnx 6.5?
Где скачать утилиту umc?
Записан
bugmenot
Участник
*
Offline Offline

Сообщений: 30


Просмотр профиля
« Ответ #6 : Июня 05, 2015, 09:51:22 pm »

На виртуалке отработал способ http://www.openqnx.com/phpbbforum/viewtopic.php?f=6&t=12033 , будет ли все хорошо на реальном железе?
Записан
bugmenot
Участник
*
Offline Offline

Сообщений: 30


Просмотр профиля
« Ответ #7 : Июня 08, 2015, 08:40:44 pm »

... а на реальном железе драйверы svga и vesabios проигнорировали строку в файле crtc-settings и не отобразили в списке доступных режимов тот, что я добавил. Принудительное вписывание режима в файл display.conf привело к невозможности загрузки фотона. Поскажите, пожалуйста, как быть?
Записан
Dark
Sr. Member
****
Offline Offline

Сообщений: 343


Просмотр профиля
« Ответ #8 : Июня 09, 2015, 10:07:39 am »

svga и vesabios проигнорировали строку в файле crtc-settings

Эти драйвера опираются на видео-биос графического контроллера. crtc-settings только для специфичных драйверов, которые должнеы сами выдумывать modeline. Вот из этого файла они и черпают вдохновение.

Что сделать-то хотите?
Записан
bugmenot
Участник
*
Offline Offline

Сообщений: 30


Просмотр профиля
« Ответ #9 : Июня 12, 2015, 12:58:53 pm »

Моя цель - установить разрешение с соотношением сторон 16:9 (например, 1920х1080) используя драйверы svga или vesabios (поскольку другие драйверы не запускаются)
Записан
Dark
Sr. Member
****
Offline Offline

Сообщений: 343


Просмотр профиля
« Ответ #10 : Июня 12, 2015, 06:58:56 pm »

Стандарты семейства VESA не регламентируют разрешения сверх 1600x1200. Для этих режимов в стандартах заложены только тайминги, переключиться в них через видео-биос можно только в сильно экзотических случаях. Запустите утилиту show_vesa и увидите все, что позволяет сделать видео-биос. Если вам очень крупно повезет, то свое разрешение вы там найдете.
Записан
bugmenot
Участник
*
Offline Offline

Сообщений: 30


Просмотр профиля
« Ответ #11 : Июня 15, 2015, 08:25:57 pm »

Не повезло, нужного мне разрешения нет в выводе show_vesa.
Есть ли еще какие-нибудь варианты?
Может быть реально завести какой-нибудь другой драйвер для современной видеокарты nvidia?
Записан
Dark
Sr. Member
****
Offline Offline

Сообщений: 343


Просмотр профиля
« Ответ #12 : Июня 15, 2015, 08:33:42 pm »

видеокарты nvidia

Не слышали, несколько лет Линус на nvidia бочку катил на тему линукса? Вот и в QNX с этим вендором ситуация +- такая же, с поправкой на отсутствие заинтересованности у производителя в проприетарных дровах.
Записан
Страниц: [1]
  Печать  
 
Перейти в: