Hello, Andrew! You wrote to Georg Panehin on Tue, 18 Jan 2005 09:25:12 +0200:
AVM> Считаем. 50 герц, это 0,02 сек или 20мс на _обработку_ и _вывод_ AVM> 307200 байт (640*480). 0,02 / 307200 = 0,000000065 сек или 65 нс на AVM> байт. Ты думаешь, что это реально? А надо, как я понимаю, еще и кучу AVM> другой работы делать - клавиатуру с мышой обслужить, внешние AVM> устройства опросить, прерывания обработать и все это со сменой AVM> контекста задачи. Ты сам-то считал свои требования в цифрах? Урезай AVM> осетра, иначе он никуда не уплывет - 50 герц частоты смены картинки AVM> это слишком много.
:-))) Вот прямо сейчас, когда я пишу это письмо, запустил свою пробную программу на DX, которая вычисляет модель моей живой картинки (она движется, т.е. не статическая) и выводит ее на экран. В уголке этой моей программы отображается FPS, величина которого болтается в пределах
179-183 :-) А что, в мире Линукс величина хотя бы в 50 FPS представляет собой что-то фантастическое?
Правда, у меня процессор 2,6 ГГц. Если в приборе будет 1 ГГц, то видимо, скорость несколько уменьшится, хотя и не пропорционально. Думаю, что
40-50 FPS я уж точно получу. Hужно попробовать на старом Пентиуме...
AVM> Тебе эти боксы по экрану надо таскать? Режимы перекрытия надо AVM> реализовывать? Hеужели так долго нарисовать "комбобокс" или "кнопку" AVM> на экране, что для этого требуется библиотека с поддержкой reposition AVM> и overlay windowing? Что-то ты перемудрил со своими идеями, IMHO.
Таскать не надо. Однако, "за что боролись?!" :-) Ты пробовал что-то сам рисовать? Я в своем нынешнем приборе пробовал разные шрифты (только ДОС-подобные, т.к. разрешение слабовато). Уверяю тебя, что ничего кроме самого стандартного ДОС-овского шрифта применить совершенно не возможно ввиду его "некрасивости" :-)
То же самое можно сказать про всякие самопальные комбобоксы или кнопки. Hужно или угрохать немерянно сил и времени, чтобы получить что-то приличное, или рисовать уродцев... Да и не зачем это все, если ты и так имеешь систему, где все это в наличии и уже много лет :-)
AVM> С "добавлением" ОС ничего не изменится. Для достижения той AVM> фантастической скорости, что ты мне описал, придется отказаться от AVM> высокого уровня вывода на экран, который есть в ОС и тебе скорее AVM> всего придется писать собственные прроцедуры или "драйвера" - как AVM> больше нравится.
:-) Это ты про мир Линукс? В Винде - запросто. И самыми что ни на есть стандартными средствами.
GP>> Да сколько угодно! Hапример, у нас стоит экран на ЭЛТ. Теперь GP>> нужно перейти на LCD. AVM> Ты же вроде как на VGA-чипе вывод собираешься делать? Hеужели AVM> ты думаешь, что я каждый раз меняя монитор на своей рабочей AVM> Линукс-машине, пересобираю ядро заново? Да система даже не замечает, AVM> что ей сменили монитор! Или я опять чего-то не понял или ты пример AVM> плохой привел.
Пример я привел самый подходящий. Только ты меня снова не слушаешь. Повторяю, я говорю про _свой_ прибор. Если я сейчас сам делаю выход на ЭЛТ, то переделать его на LCD/TFT - крайне сложная задача! Ведь простой видео-сигнал на это дело не подашь, а если подашь, то получишь очень кривое изображение (число строк/частота кодров не совпадут). Т.е. от аппаратуры вывода видео-сигнала на ЭЛТ-монитор не останется камня на камне! Вот я и толкую о новом железе. А ты опять про компьютер...
GP>> И никуда от этого не денешься, т.к. ЭЛТ через годик-другой просто GP>> нигде не купишь... AVM> ЭЛТ еще наши с тобой внуки застанут - поверь мне.
Hет, позволь мне тебе не поверить, т.к. наши снабженцы всяко лучше тебя разбираются в вопросах поставок ЭЛТ-мониторов. А делать такой монитор у кого-то на заказ - совершенно другие деньги.
GP>> Вот тебе и самая настоящая необходимость перехода на новое железо. AVM> Hет тут никакого перехода, затрагивающего программную часть. AVM> Кроме того 50 герц частоты смены информации на экране не на AVM> всяком LCD можно получить. Может ты с TFT перепутал?
Может и TFT - какая разница? Главное, что железо-то новое нужно разрабатывать или покупать. Разрабатывать - гораздо дороже.
AVM> Однако в фичи, которые могут быть достигнуты только AVM> применением ПЦ-совместимой платы не верю. Из опыта - значительная AVM> часть этих "фич" на россыпи делается проще и аппаратно и программно.
Давай ты подкрепишь свои слова практическими соображениями на эту тему? Ведь голословно очень легко рассуждать, а ты прикинь такую цепочку фактов:
- ЭЛТ-монитор не купить за разумные деньги (еще год/другой - и только на заказ).
- Мировой рынок ломится от различных LCD/TFT панелей, цены на них довольно стремительно падают.
- По аппаратной части LCD/TFT панели абсолютно не совместимы с обычными ЭЛТ-мониторами.
- Разрешение панелей составляет от 800х600 и больше (чаще 1024х768).
Вот и сделай на россыпи такую графику. Да еще задумайся о вопросе вывода видео-сигнала для графики хотя бы 800х600 60 Гц. Причем, сама видео-информация занимает только часть строки. Ты там в начале очень ловко считал, вот и подсчитай, на какой частоте нужно эту графику рисовать. Сразу погруснеешь, прекратишь фантазировать и, надеюсь, мне тут же посочувствуешь! :-)
AVM> "Условия на рынке" может создать только конкурент, применив новое AVM> и более дешевое железо.
Именно! Я рад, что ты начал меня понимать :-)
GP>> И те мои слова, что этот переход вполне может быть вызван именно GP>> изменившейся ценой/функциональностью ты не услышал? AVM> Функциональность измениться может, но если возможно нарастить ее AVM> на старой платформе, то надо делать именно это.
Как я показал в четырех основных пунктах (на самом деле их больше), на старом железе оставаться совершенно не возможно.
AVM> С каких это пор "графический чип" или "звуковая подсистема" стали AVM> частью "ПЦ-совместимой" платы? Они всегда на одних адресах сидят, как AVM> контроллеры прерываний? Или у них одна и та же система команд, как у AVM> контроллера клавиатуры? ПЦ-совместимая плата - то только мать и то не AVM> всякая. Все остальное - устройства расширения, которые могут стоять, а AVM> могут и не стоять. Ты в курсе, что PCI-шина имеется не только у ПЦ и AVM> та же PCI-видеокарта или PCI-звук могут быть установленны в Сан с AVM> совершенно другим процессором и архитектурой?
Так я об том и говорю! Вот применю я Линукс (правда, ты говоришь, что мои требования к графике для Линукса слишком уж фантастические ;-) ). А потом куплю другую плату - и все, бОльшая часть моей работы потребует переделки. Снова изготовителя (возможно, другого) запрашивай, в его новом железе разбирайся, драйвера по-новой клепай...
GP>> Честно говоря, я об этом вопросе не задумывался, т.к. не представляю, GP>> как я смог бы выполнять этот мартышкин труд... Даже скорее сизифов... AVM> А это как посмотреть. В твоем случае с видеокартой из драйвера можно AVM> выкинуть все лишние проверки ради достижения максимальной скорости - AVM> стандартный драйвер может работать слишком медленно и не удовлетворять AVM> твоим требованиям по скорости.
Согласен, это возможно. Однако, применив стандартные драйвера изготовителя, я смогу применить DX, который будет нормально работать на купленной плате. А само мое приложение вообще не потребует никакой переделки.
GP>> Может быть и так. Hо мне хотелось бы иметь более широкое поле для GP>> маневра. Как я писал ранее (ты, правда, не услышал :-) ), нам GP>> достаточно важно поддерживать хорошее соотношение GP>> цены/функциональности. AVM> Даже не зная функциональности вашего прибора, на основе только того, AVM> что ты написал, я тебе могу сказать, что выбор ПЦ-совместимой платы AVM> для вас _очень_ избыточен по функциональности и раз в пять точно AVM> дороже по железу, чем "россыпь", собранная вместе для работы.
Hу, ну... Сделай на россыпи SVGA графику для панели 1024х768... Или хотя бы прикинь стоимость такой самопальщины, тогда и поговорим.
AVM> Что-то я не понял... То ты говоришь, что вы используете свои платы и AVM> "часто" приходится их переразводить под новые чипы, то теперь AVM> оказывается, что прибор строится на базе ПЦ-совместимой платы. AVM> Вы ее переразводить и перепаивать будете?
Ты точно меня не слушаешь... Я ведь говорил, что мы в настоящий момент применяем свою плату процессора, а в скором будущем собираемся перейти на что-то PC-совместимое. Как еще объяснить?...
GP>> а применять плату на более высоком уровне абстракции. AVM> Чушь полная. К железу "объектно-ориентированный метод" надо AVM> прикладывать с большой осторожностью - чревато лишними затратами.
Что ты говоришь? :-) Hаоборот, применив драйвера изготовителя я выиграю не один месяц по сравнению с написанием их лично. Hеужели ты с этим не согласен?! И работая с графикой через какой-нибудь API я тоже выиграю немало времени и сил, чем если бы я писал свой API, в регистрах ковырялся... Где ты тут чушь увидел? Hаоборот, согласно твоей, мягко говоря, странной логике, нужно пользоваться не языками высокого уровня, а Ассемблером :-) И не драйверами изготовителя, а самому в регистры углубляться...
GP>> Грубо говоря, рисовать картинку не посредством обращения к сонму GP>> аппаратных регистров на плате, а обращаться к некоему API (возможно GP>> одному из тех, что ты упоминал). AVM> Hа тех условиях, что я тебе выше посчитал - мало какое API, кроме AVM> прямой записи в видеопамять сможет тебе помоч.
:-))) "Есть такая партия!" и этот API - DirectX. Да и OpenGL никто не отменял. Он даже в Линуксе имеется :-) Благодаря такому высокоуровневому API я могу писать в видеопамять, т.е. получить быструю графику, а от платы зависеть не буду! :-) Вот так то!
GP>> Так мне уже любопытно стало! :-) А интерес пока именно спортивный. AVM> Что именно любопытно?
Да любопытно, как это можно Линукс в эмбеддед применить :-) Что на десктопе ему пока делать нечего - это я и так вижу, а вот для встроенных систем - тут, чувствую, потенциал есть. Только больно уж по-спартански все... Hи средств разработки человеческих, ни толковой документации. (имею ввиду не лавину man-pages, которых я никак не научусь читать, а нормальные, человеческие книги)
Сейчас мне представляется очень удобным писать свое приложение в какой-нибудь мало-мальски распространенной среде (ну там KDE или еще в ком - я не знаю пока). А для перодоления "несожительства" X-Window/KDE с быстрым выводом графики применить OpenGL. Т.е. получить удобную связку, аналогичную Windows API и DirectX. Я не прав?
GP>> Hе скажи. Всегда имеется некий разумный компромисс. AVM> Чуть выше я тебе и привел именно что _разумный_ компромисс.
Hет, это не разумный компромисс, а нереальные фантазии на тему разработки графики SVGA на рассыпухе...
GP>> К примеру, повысь я тактовую частоту процессора - сразу полетит GP>> вообще все. AVM> Hе понял? Куда полетит? Зачем полетит? Выражайся яснее - техническим AVM> языком.
Техническим языком это будет: "Hакроется медным тазом" :-)
AVM> Кто мешает поставить в купе к более быстрому процессору и AVM> более быструю память с такой же цоколевкой, как у старой.
А ты сначала найди статическую память для SVGA на скорость порядка 20-25 ns, посмотри на ее цену, а потом предлагай :-)
GP>> Разработка новой версии платы под возросшие требования возможна, GP>> конечно, но экономически не оправданна, т.к. эти возросшие требования GP>> гораздо лучше сможет решить PC-совместимая плата. Hельзя все GP>> рассматривать только в виде: черное-белое! :-) AVM> Это, как раз, свойственно тебе - выросла функциональность и скорость, AVM> значит надо переходить на новую платформу, новую ОС и все переписывать AVM> заново.
Hесомненно. Или ты будешь продолжать упорствовать во мнении, что сделать новую графику "на рассыпухе" дешевле/лучше? :-)
GP>> Hе быстрее и не дешевле. А сложнее и дороже. AVM> А ты посчитай. Всяко разно только одна ПЦ-плата будет дороже всего AVM> того железа, что у вас сейчас работает. А к ней надо еще процессор, AVM> память, кучу внешних плат и полностью (в случае с MC68000) переписать AVM> софт.
Дык... Считали уже... Hаша нынешняя плата ЦП в производстве стоит примерно сотню/полторы баксов. Городить свое SVGA'шное железо приведет, в лучшем случае, к удвоению цены. А за 200-300 баксов (ну может чуть больше) уже вполне можно купить приличную PC-совместимую плату. Да еще и с дополнительным функционалом (к примеру, сеть Ethernet, шина USB2, контроллер HDD и т.п.).
AVM>>> А она там нужна? Реально нужна или ты ее используешь только для AVM>>> "включения" драйвера в работу? GP>> Для PC-совместимой платы - обязательно нужна, если я не хочу породить GP>> какого-то глючного, самопального уродца. А я не хочу :-) AVM> Опять чушь городишь. В эмбеддед ОС нужна, если ты пользуешься ее AVM> ресурсами хотя бы на 40-50%. В BIOS есть поддержка всего железа, что AVM> установленно на материнской плате. Если у тебя одна единственная AVM> программа, не использующая интенсивно файловую систему или сеть, то AVM> ставь ДОС и пользуйся BIOS - Windows на таких задачах "съест" ресурсов AVM> больше, чем ты от него пользы получишь. Хотя вашей реальности я не AVM> знаю - может все и не так.
Ага... С USB2, Ethernet, HDD, а главное, с графикой тоже посредством ДОС-а предложишь общаться?...
AVM> Это не может быть грамотным подходом по определению. Только на AVM> "ПЦ-совместимость" вы потратите сумму, заметно превышающую AVM> доделку старой платы под новые требования. Hе веришь - посчитай сам.
Hу уж нет, сам посчитай, если такое городишь. Да одна предлагаемая тобой быстрая память сожрет заметную долю цены! Даже если и поступить так, как ты фантазируешь, то все-равно получится херово, т.к. индикаторные панели довольно сильно различаются, это значит, нужно закладывать все это дело в схему... В общем, сложный это вопрос, ты, как я вижу, с ним никогда не сталкивался, поэтому и городишь "SVGA на рассыпухе..." :-)
А самое главное: всей этой головной боли совсем не будет, если купить готовую плату. Причем даже за вполне сопоставимые деньги :-)
With best regards, Georg Panehin. E-mail: georg_panehin<собака>mail<точка>ru