burrru: (Default)
[personal profile] burrru
На материнских платах современных компьютеров есть 2 места под видеокарты. Обычная технология позволяет поставить только две одинаковые видеокарты. Наша контора делает чип, который обеспечивает поддержку двух любых видеокарт. Ведущие производители материнских плат готовят к выпуску платы с нашим чипом, а одна такая плата уже вышла в продажу. Сейчас в Тайване проходит международная компьютерная выставка COMPUTEX. На ней материнская плата с нашим чипом получила награду Best Choice. Это самая престижная награда, которую может получить такой продукт. Контора радуется.

Во время работы над таким продуктом приходится решать много разных задач. Одним трюком я горжусь совершенно по-детски. Вот упрощенные вводные данные. На компьютере запущена какая-то ресурсоемкая программа. В режиме реального времени мы узнаем ключевые параметры этой программы. Мы хотим выводить эти параметры на экран. То есть, программа работает, а где-нибудь в уголке экрана мы видим постоянно меняющиеся числа. Единственная функция, которая есть в нашем распоряжении, может нарисовать прямоугольник любого цвета, любого размера в любом месте экрана. При этом цвет, размер и место могут быть произвольными, а вот количество вызовов этой функции надо минимизировать.

Сперва нарисуем черный прямоугольник, у которого ширина раза в полтора меньше высоты. Поверх него нарисуем белый прямоугольник меньшего размера - чтобы были видны края черного прямоугольника. Так мы получим цифру 0. А если мы нарисуем белый прямоугольник поверх черного так, чтобы от черного осталась только вертикальная полоска, то получим цифру 1. Чтобы получить цифры от 2 до 9, надо поверх черного прямоугольника нарисовать два белых прямоугольника в соответствующих местах (и один - для семерки). В среднем 2.7 прямоугольника на цифру, что довольно мало.

Получается угловато, уродливо, но крайне просто и эффективно. За пару дней был написан и отлажен интерфейс для этого метода. В нашей конторе все отделы пользовались этим методом почти год.

Date: 2010-06-01 10:51 pm (UTC)
From: [identity profile] dmpogo.livejournal.com
Два места - уже по три есть :)

Date: 2010-06-01 11:05 pm (UTC)
From: [identity profile] burrru.livejournal.com
Конечно. Мы и над этой комбинацией работаем.

Date: 2010-06-01 11:20 pm (UTC)
From: [identity profile] dmpogo.livejournal.com
А что за компания, если не секрет ? А то я все с Gigabyte'ом ..

Правда именно мне все эти SLI/Crossfire комбинации как раз ни к чему. Я наоборот бы радовался материнки которая бы экономила на PCIe16-х, при высоком качестве всего остального.

Date: 2010-06-02 07:00 am (UTC)
From: [identity profile] burrru.livejournal.com
Не секрет. Lucidlogix.

Я бы тоже. К счастью, есть миллионы "геймеров", которым нужны эти навороты.

Date: 2010-06-01 11:03 pm (UTC)
From: [identity profile] capivar.livejournal.com
Да, это очень изящное решение. До сих пор с удовольствием вспоминаю вашу задачу. :)

Date: 2010-06-01 11:05 pm (UTC)
From: [identity profile] burrru.livejournal.com
Спасибо!

Date: 2010-06-01 11:53 pm (UTC)
From: [identity profile] joe-chasmtons.livejournal.com
А вся слава досталась MSI :)
У других вендоров ваши чипы скоро появятся?

Date: 2010-06-02 07:07 am (UTC)
From: [identity profile] burrru.livejournal.com
Они ее заслужили. А мы погреемся в лучах этой славы.

Asus на этой же выставке представил новую плату с нашим чипом, а MSI - несколько плат. Ну, и разные другие проекты есть...

Date: 2010-06-02 12:32 am (UTC)
From: [identity profile] spamsink.livejournal.com
Для семерки только один дополнительный прямоугольник нужен:
_
 |
 |

Date: 2010-06-02 06:52 am (UTC)
From: [identity profile] burrru.livejournal.com
Да, конечно.

Date: 2010-06-02 01:36 am (UTC)
From: [identity profile] vgramagin.livejournal.com
Для 7 только один.

В принципе, для 2, 5 и 9 тоже можно одним обойтись

Date: 2010-06-02 06:51 am (UTC)
From: [identity profile] burrru.livejournal.com
Верно.

Date: 2010-06-02 01:45 am (UTC)
From: [identity profile] kcmamu.livejournal.com
жжж  .ж.  жжж  жжж  ж.ж  жжж  жжж  жжж  жжж  жжж
ж.ж  .ж.  ..ж  ..ж  ж.ж  ж..  ж..  ..ж  ж.ж  жжж
ж.ж  .ж.  жжж  ..ж  жжж  жжж  жжж  ..ж  жжж  жжж
ж.ж  .ж.  ж..  ..ж  ..ж  ..ж  жжж  ..ж  ж.ж  ..ж
жжж  .ж.  жжж  жжж  ..ж  жжж  жжж  ..ж  жжж  жжж

 2    2    3    2    3    3    2    2    3    2

Date: 2010-06-02 06:52 am (UTC)
From: [identity profile] burrru.livejournal.com
Можно и так.

Date: 2010-06-02 06:19 am (UTC)
From: [identity profile] evg25.livejournal.com
Молодец, поздравляю! :-)

Date: 2010-06-02 06:53 am (UTC)
From: [identity profile] burrru.livejournal.com
Спасибо!

Date: 2010-06-02 06:40 am (UTC)
From: [identity profile] mz1313.livejournal.com
Патент зарегистрировали? Кстати, не шучу.

-- Сперва нарисуем черный прямоугольник, у которого ширина раза в полтора меньше высоты. Поверх него нарисуем белый прямоугольник меньшего размера - чтобы были видны края черного прямоугольника. Так мы получим цифру 0.

А что происходит, если в этот момент фон экрана - или хотя бы того куска, на котором ты рисуешь - черный? Твой внешний прямоугольник просто сольется с фоном.

Date: 2010-06-02 06:57 am (UTC)
From: [identity profile] burrru.livejournal.com
На это - нет. Слишком мелко. У нас более крупные патенты.

Для каждого числа добавили один широкий белый прямоугольник - фон.

Date: 2010-06-02 07:06 am (UTC)
From: [identity profile] mz1313.livejournal.com
-- У нас более крупные патенты.

Не исключаю, что это вы зря - в хай-теке принято каждую мелочь патентовать. И есть на то причины. Надеюсь, что вас консультирует хороший специалист по патентному праву.

P.S. А решение симпатичное. Навеяно какими-нибудь электронными часами? :-)

Date: 2010-06-02 07:17 am (UTC)
From: [identity profile] burrru.livejournal.com
Мы там "танцуем среди гигантов" - кругом патенты. Нам тоже приходится. Но с более серьезными алгоритмами.

Ага. Хотелось улучшить стандартную 7-bars схему. Прикол в том, что мы работаем с самой навороченной графикой и хорошо знаем, как именно надо рисовать числа в своей аппликации: текстура, копирование из нее, рендеринг и все такое. Красиво и любым шрифтом. Более того, мы даже можем это внедрить в чужую аппликацию. Но нужно было что-то совсем легкое. И вот посреди навороченной графики - угловатое уродство... Но работает.

Date: 2010-06-02 08:01 am (UTC)
From: [identity profile] h2010.livejournal.com
поздравляю!
а как называется технология и чип?

Date: 2010-06-02 08:59 am (UTC)
From: [identity profile] burrru.livejournal.com
Спасибо!

Date: 2010-06-02 08:59 am (UTC)
From: [identity profile] burrru.livejournal.com
Ага. Наша фирма называется Lucidlogix.

Date: 2010-06-02 08:16 am (UTC)
From: [identity profile] zhuk-zhuzhuk.livejournal.com
Действительно: просто и красиво!
Поздравляю!

Date: 2010-06-02 08:40 am (UTC)
From: [identity profile] burrru.livejournal.com
Спасибо!

Date: 2010-06-02 10:31 am (UTC)
From: [identity profile] kender-ipa.livejournal.com
Lucid Hydra - ваше детище?)

Date: 2010-06-02 11:55 am (UTC)
From: [identity profile] burrru.livejournal.com
Да, наших рук дело.

Date: 2010-06-02 12:58 pm (UTC)
From: [identity profile] hajal.livejournal.com
Одинаковые - это как?

Просто вспоминается, скажем, макбук про, где 9400 и 9600 стоят одновременно и можно между ними переключаться.

Date: 2010-06-02 01:16 pm (UTC)
From: [identity profile] burrru.livejournal.com
Это технологии SLI и Crossfire. Они позвлояют запустить одну аппликацию одновременно на двух видеокартах. Но требуют, чтобы карты были одинаковыми.

А в макбуке аппликация бежит на одной из карточек.

Date: 2010-06-02 08:35 pm (UTC)

Date: 2010-06-02 08:38 pm (UTC)
From: [identity profile] burrru.livejournal.com
спасибо

Date: 2010-06-04 12:51 am (UTC)
From: [identity profile] zhenyach.livejournal.com
Напоминает, как в 80-е мне нужно было быстро выводить сложнораскрашенные битмэпы на экран Тектроникса. Рисование там происходило так - на терминал по проводу в 2400 бод посылались команды, а он их выполнял. Если для картинки 200х200 посылать по команде на каждый пиксел, то рисовалось оно несколько минут. А хотелось, чтобы хотя бы меньше секунды.

Пришлось заняться определением одинаково раскрашенных областей, и посылать по команде на область (там была такая - "закрасить многоугольник, заданный последовательностью вершин"). Ну и упорядочивать, чтобы, если один регион лежит внутри другого, то сначала нарисовать внешний - тогда можно было не заморачиваться со связностью.

Помогло, конечно, то что тот Тектроникс в принципе мог отображать небольшое число цветов - не то 7, не то 15. А иначе бы такой номер не прошел.

Date: 2010-06-04 08:20 am (UTC)
From: [identity profile] burrru.livejournal.com
Тогда эта технология Вам может понравиться:
http://gizmodo.com/5545623/these-technicolor-dream-hands-could-revolutionize-ui
Page generated Jun. 8th, 2025 11:15 am
Powered by Dreamwidth Studios