01 March 2009 @ 10:20 pm
Не поверите, мой маленький доклад про GPGPU на маленькой уютной майкрософтовской тусовке (спасибо [info]sasha_gil!) решили выложить на Channel9 (спасибо мужикам из MS Russia!).

Я человек приземленный и в основном на пальцах рассуждаю за железо, CUDA и как примерно оно внутри работает. Попеарьте меня, чтоле!

Часть 1 (сам доклад) - http://channel9.msdn.com/posts/mikcher/GPU-Algorithms-Part1/
Часть 2 (вопросы) - http://channel9.msdn.com/posts/mikcher/GPU-Algoritms-Part2/

В будущем выложат еще одну часть, где содокладчик Миша Горбунов будет показывать одну из демок на CUDA.

Как всегда, необходимый disclaimer: Доклад случился около полугода назад, поэтому некоторых новейших тенденций может не отражать, и, разумеется, является исключительно моим личным мнением, а никак не позицией корпорации.

Crossposted to blog.gamedeff.com
Tags: ,
 
 
Чтобы год с лишним в Imaging не прошли даром, я попробую записать если не "what did we learn from it?" (the obvious answer is not to do it again), то хотя бы уж "what the fuck it is we did". (это если что цитаты).
Забавно, что почти год спустя про WIC все еще спрашивают и даже за дизайн приходится чуть спорить. Кто бы со мной столько про DX разговаривал.

I thought you might be worried...about the security...of your shit )

Вот на таких state of art-технологиях делается некая часть Windows. С с классами, goto, HRESULT, функции для умножений и сложений. Дедовскими методами, без темплейтов, прогресса и прочего rocket science. Люди аккуратно пишут код на языке C, как писали 10 и 20 лет назад.

С++ и ATL-зеалотам - пламенные приветы.
Crossposted to blog.gamedeff.com
Tags: ,
 
 
11 August 2008 @ 01:42 am
DX 10 post, part 1 - Infrastructure
DX 10 post, part 2 - API changes
DX 10 post, part 3 - New hardware features

Про DX11 уже рассказали на GameFest 2008, но презентации еще не выложили, и, будем считать, это дает мне минутку рассказать, что же нового добавили в DX10.
Вообще, если кто-то программирует графику на PC и всего этого давно не знает, то я напуган за родной DX. Кстати, расскажите, кто за последний год начал потихоньку переписывать рендер на DX10(Коля, только не ты!)? Я буду шибко признателен, мне всегда интересно поговорить и послушать вашу ненависть (или даже, тьфу-тьфу-тьфу, радость).

Freeze ray needs work )
В общем - оно все стало более consistent и с меньшим количеством исключений из правил. Можно больше работы делать на GPU, не привлекая CPU, появились новые задачи, которые вообще можно решать на GPU, пофиксены многие старые проблемы, внесены в API и легализованы полезные хаки вендоров.
Что меня удивляет в DX10 - так это различие между теорией и практикой. Все очень стройно, вкусно и здорово, пока не сталкиваешься с реальным миром. В реальном мире тормозят GS, до такой степени, что их нельзя применять масштабно, в реальном мире не получается так просто уменьшить количество DIP calls, а сами они становятся дешевле не на порядок, а всего в разы (большинство времени проводя, очевидно, в драйвере). Ну и конечно пункт "Vista only" маячит над горизонтом, спускаясь за него медленно и неспешно.

Откуда такое несоответствие задуманного и существующего - мне еще предстоит выяснить, я не знаю ответа. То ли наши с IHV мало пива пьют вместе, то ли death by a thousand cuts...

Тем не менее, DX10 - ничо так. Не так бесконечно круто, как хотелось бы, но сильно лучше, чем раньше. Как Виста таки победит - переходите смело. У нас тут исчо DX11 не за горами, в нем тоже клевое.
Crossposted to blog.gamedeff.com
Tags: ,
 
 
13 June 2008 @ 10:57 pm
DX 10 post, part 1 - Infrastructure
DX 10 post, part 2 - API changes
DX 10 post, part 3 - New hardware features

Я так считаю, что пока DX11 не вышел, посты про DX10 еще считаются актуальными. Посему радуйтесь, я буду вам рассказывать про изменения вышедшего год назад API.
Тем более, не спится.

Нас тут полно таких серьезных... )

По-большому счету, пожалуй, и все. Осталось рассказать про самое вкусное - сами новые хардверные фичи, в следующий раз дойдем и до них. Глядишь к DX11 успею.
Crossposted to blog.gamedeff.com
Tags: ,
 
 
12 March 2008 @ 01:10 am
Так вот, родная компания отправила на GDC, потому что меня любит. Почти полная неделя в Сан-Франциско - это не может не радовать
Не считая того факта, что все дожди и облака переехали на эту неделю из Сиэтла вместе со мной (извини, солнечная Калифорния, радуйся, волшебный Northwest), все было более чем хорошо.

На удивление сложно найти людей, которые кодают на DX10, один Крайтек только и нашел. С мужиками из Крайтека хорошо и весело, привет Тимуру. Такое ощущение, что из Крайтека приехало больше народу, чем из MS...
Рассейского геймдева видел совсем уж мало, видимо отрываюсь от. Или это 1С не приехал. Надо в любом случае что-то делать.

Интересно на конференциях, как всегда, слушать девелоперов. IHV и платформодержатели расскажут тебе все и так, у них работа такая, а вот девелоперов слушаешь всего несколько раз в год. Мужики вполне отвечают на вопросы и не палятся (и даже реагируют на письма). Я тоже буду излагать достаточно примерно, надеюсь в случае чего смогу уточнить в комментах.

Не успел пробиться на тек в Uncharted, не выдержал километровой очереди на Final Fantasy.
Давайте буду рассказывать про то, что понравилось и запомнилось.

There was never any good old days, they are today, they are tomorrow )
Crossposted to blog.gamedeff.com
Tags: ,
 
 
18 February 2008 @ 12:50 am
DX 10 post, part 1 - Infrastructure
DX 10 post, part 2 - API changes
DX 10 post, part 3 - New hardware features

Этот пост надо было написать год назад, потом полгода назад, потом месяц назад и неделю назад.
Год назад я был под впечатлением от MS вообще, полгода назад я был в неправильной команде, а месяц и неделю назад жизнь кипела и бурлила. Однако, наконец, случился неожиданный перерыв и можно, наконец, написать про DX10.

Сразу скажу, я как девелопер на DX10 писал не больше маленькой демки, но в принципе уже имел счастье копаться во внутренностях. Если что, считайте меня евангелистом, гыгыгы.
Буду описывать впечатления высокого уровня, низкого - детали реализации. Опять же, каждый пункт очень не подробный, про каждый - можно писать большой детальный отдельный пост. Пожелания принимаются :)

За один раз все не описать, сегодня будут, пожалуй, самые большие изменения - инфраструктурные. Нужно отметить, что большинство из них относятся не только к DX10, но и вообще ко всем версиям DX на Висте.

Ladies and gentlemen, good evening )

Слушайте, как же я соскучился по блогу за месяц без постов, пальцы прямо радуются и с удовольствием тыкают по кнопочкам. До скорой встречи, про свое добро я могу рассказывать долго.
Crossposted to blog.gamedeff.com
Tags: ,
 
 
09 January 2008 @ 12:12 am
Не прошло и полутора лет, как сбылась мечта идиота - сегодня первый день, как я в DirectX. Так как я в общем-то за этим и шел работать в MS, вот, мечты сбываются.

Если конкретнее, в DXGI, GI - это Graphics Infrastructure. DXGI - это место, где DX Runtime соприкасается со всей остальной OS. Скажем, Present stack и связь его со всякими HWND и прочим добром. Менеджмент текстур и вообще ресурсов, их взаимодействие с GPU scheduler (я как-нибудь расскажу, про что это) и еще всякое. Энумерации адаптеров, мониторов, swap chains, fullscreen mode и т.д, и т.п.

Где видите IDXGI - это его публичная часть. Кто писал на D3D10, уже видел.
Буду изучать kernel debugger и интерналсы Винды, пока все выглядит страшно и необъятно.
DXGI - это интересно, потому что там можно решать идеологические проблемы, напрямую не зависящие от железа. Рантайм кодать стало скучно - он тупо форвардит все вызовы в драйвер, интересно только спеки на новые фичи и driver API писать. А вот в инфраструктуре - еще есть много чего допиливать. Грубо говоря, все то, что железо может, а OS не позволяет - там.

Настал тотальный dream place to work. Посмотрим, на что он похож.
Кстати, я так сходу не могу вспомнить ни одного русскоязычного человека около DX, пишущего технический блог, так что, ыыыыыыыыыыы, эксклюзифф.

Crossposted to blog.gamedeff.com
 
 
Арсений из Санкт-Петербурга задает вопрос:

В D3D10 легализованы depth textures, то есть возможность представления zbuffer в виде текстуры, из которой может сэмплить шейдер, это часто бывает полезно например для shadow maps и soft particles.

Почему это не работает для multi-sampled depth textures, ни чтение в шейдере, ни Resolve? Для multi-sampled color же все окей.
Попробовал и на reference device, значит не баг в драйверах и дело не в конкретной карте.

Отвечает Александр Друзь.
It's not interesting, really )
Crossposted to blog.gamedeff.com
Tags: ,
 
 
17 September 2007 @ 12:14 am
Мне всегда было интересно, получится ли из IRC-логов записывать что-то самодостаточное. Буду пробовать.

Вот как примерно все выглядит на #gamedeff.

Suggestions по формату и насколько успешно логи доносят идею, какие места непонятнее всего получились - более чем welcome. А то я думаю, продолжать ли эту затею.

log dump )

Crossposted to blog.gamedeff.com

UPD: Дико извиняюсь, если кому порвало френдленту. Fixed.
Tags: ,
 
 
15 August 2007 @ 01:15 am
Мужики, происходит что-то странное. На SIGGRAPH родная компания представила DX 10.1, и в сети начали писать вот такое:
Shashdot|DirectX 10 Hardware Is Now Obsolete
Vole shoots foot with 10.1 upgrade
И кучи тем на разных форумах, достаточно посмотреть первые ссылки в Гугле на DX 10.1.

Говорят, значит, мол, DX 10.1 не поддерживается текущими DX10-картами, и это означает что все текущее железо теперь можно выбрасывать на свалку, а на него же потратили столько денег.
Кроме того, и фичи в том DX 10.1 небольшие да не революционные, то есть MS это еще и облажалась, никакой принципиальной ценности новый API не несет, мол запоганили все железо из-за ерунды.
А так как DX 10.1-железа будет мало, то загнется и вообще весь DirectX, и с ним и весь MS.

На самом же деле, это вполне разумная политика.

DX stories )

И MS рассказывала эту roadmap кучу раз, что так все и задумано, что этот способ действительно лучше, чем капсы. Во времена DX9, которому пришлось жить аж около 5 лет, все говорили о том, что нужно DX runtime апдейтить чаще, чем раз в три года. Вот, это именно оно.
Но нет же, блин, надо все интерпретировать так, чтобы был злобный MS. И даже на индустриальных форумах можно увидеть эти рассуждения. Страшно жить становится...
Не любят нашу цитадель добра, не любят.

P.S. А там кстати вполне интересные фенечки, на самом деле. Добить поддержку всех FP-форматов и AA-режимов (то что не получилось в DX10.0) - это правильно и понятно, но есть и другое. Особо интересно рендерить и копировать на видеокарте в сжатые форматы, выглядит очень круто. Надо как-то собраться и написать таки большой пост про DX10.

Crossposted to blog.gamedeff.com
Tags: ,
 
 
Семен
21 March 2007 @ 02:37 am
Доклады на GDC были очень разные, и хоть народ в основном жалуется, что мол в этом году все хуже, уровень по мне серьезный.
Лучше и интереснее всего, конечно, слушать девелоперов. Вообще, мне серьезно часто кажется, что девелоперы часто лучше знают как программировать железку, чем IHV. Не все девелоперы, понятно, но некоторые. То что такое происходит на консолях - я ничуть не удивляюсь, а вот на PC - таки удивительно, насколько практика программирования далека от пейперов делатетей железа. Впрочем, все игры с названиями из слов, начинающихся на G, O и W показывают, что практика вместе с низкоуровневыми деталями творят просто чудеса.

Тем не менее, о том что запомнилось.

Меня интересуют только мыши, их стоимость, и где приобрести )

Ну и все, пожалуй. Уже больше двух часов, и давно пора спать. Осталось успеть сказать - спокойной ночи.
Tags: ,
 
 
Семен
28 January 2007 @ 03:43 am
NV - чудо-компания, законодатель мод, технологий и прочего-прочего в 3D-графике. Не знаю уж как там Интел и NV нынче друг на друга поглядывают в свете покупки ATI, но NV по-прежнему не интересует никакой опыт и стандарт, кроме собственного. Это не то что сильно плохо, мы вот тоже такое любим делать, но остроты жизни серьезно добавляет. Кому добавляет - понятное дело, написателю драйвера и тому, кто этот драйвер пользует, то есть простому негру-девелоперу. Если ATI выпускает железобетонно-простые и быстрые железки, то NV выпускает неонку, у которой внутре вселенная. Так как номер поколения карт уже приближается к десятке, то как эта неонка работает - понимает все меньше и меньше народу, подозреваю даже в самой NV. Оно опять же показательно с точки зрения того, как накапливается легаси, если строить следующее железо на плечах предыдущего.

Вся история NV-карт - история о комбайнерах.

GPU Jams )

История NV - история собственных стандартов, технологических изобретений и длинного шлейфа OGL-расширений как результата всего этого, но больше всего - история эволюции комбайнеров. Комбайнеры, обрастая фичами, костылями, прикрученными сбоку ALU, особым фреймворком вокруг и так далее - спокойно просуществовали до наших дней. Вы представляете, какой объем работы надо выполнить драйверу, чтобы разложить ps.3.0 шейдер в сотни инструкций до элементов, с которыми работала Riva TNT?
Даже в хардверном бизнесе, когда гораздо легче незаметно подменить железо и написать компилятор в обратную совместимость - все те же проблемы легаси вылезают точно так же, как и в софте. Сделали одно решение, оно потянуло за собой другое, потом мы сделали workaround, потом сделали сверху что-то, что может преобразовать сложное в то, что может быть вычислено старыми способами (словив при этом все проблемы оверхеда), потом решили передизайнить, но этот преобразователь остался, и так далее.

The greatest programming project of all took six days; on the seventh day the programmer rested.
We've been trying to debug the !@#$%* thing ever since. Moral: design before you implement.
(спасибо [info]some41)

Разума и осознания всем нам :)

Отдельное огромное спасибо goes to [info]ironpeter и [info]boris_batkin.
Tags: ,
 
 
Семен
14 January 2007 @ 12:55 am
Совсем забросил технические посты с этой всей Америкой и впечатлениями от нее. Попробую потихоньку исправляться, дальнейшим искоренением старых знаний из мозгов.
А тут как раз повод - недавно спросили, на какой версии шейдеров для какой карточки оптимальней писать код, особенно в свете запускания шейдеров ранних версий на новых картах. Ответ слишком долгий, и поэтому я попытаюсь написать его здесь.

Сразу оговорюсь, я пишу в основном с DX point of view, хотя ссылаться на OGL все равно придется. За сегодня успеваю написать про vertex shaders и про pixel shaders на ATI. Pixel shaders на NV - это значительно более долгая история :)

ShaderXXX )

ATI живет стандартами и большей частью им скурпулезно следует. Поддерживают нужную версию DX shaders, все ARB-расширения OGL и for fun обеспечивают некоторый кроссовер.
На ATI в DX жить приятно, общие рекомендации "код меньшей версии запускай сколько хочешь" и "если не нужно, чтобы код работал на старых картах, пиши на последней версии, которая поддерживается" - за редкими исключениями всегда работают. Не надо пытаться писать на старых версиях, чтобы получить лучшую производительность. Вся функциональность карты кроме мелочей на ладони и предсказуема. Можно реюзать много кода для более старых карт не только ATI, но и NV. Красота.

К сожалению, в обратную сторону такой переход нихрена не работает - NV далеко не всегда будет любить код с ATI. А иногда, что удивительно, будет любить еще больше своего собственного.
Об этом - как-нибудь потом.
Tags: ,
 
 
Семен
01 September 2006 @ 01:44 am
DIPs inside out - part 1

Итак, очередные жалобы на жизнь графического программиста, пока я им хоть сколько-то являюсь.
Ссылка на предыдущий пост - в начале. Задумывалось, что эти поста будут рядом, однако жизнь кипела и бурлила.

Если тот пост был "о том, как все плохо", то в этом я постараюсь написать "о том, что теперь делать". Мне очень нравится блог TomForsyth, я попытаюсь так же рассказывать об очевидных вещах.

The happiest thing for a couple is to find a routine and stick with it )

Ну вот, вроде все очевидные вещи написал. Остается желать всем перформанса и пушистых шейдеров.
А я спать.
Tags: ,
 
 
Семен
01 July 2006 @ 01:03 am
DIPs inside out - part 2

Продолжу жаловаться на жизнь графического программиста.

Ой, там опять неожиданно много... )

В следующий раз я надеюсь написать, как выживать в таких условиях :)

А пока - спать, и видеть во сне океан. Разума и осознания всем нам.
Tags: ,
 
 
01 May 2006 @ 01:28 am
Сегодня буду жаловаться на любимый DirectX в его текущем состоянии. На все пожаловаться не успею, попробую успеть хотя бы на капсы.

Есть D3DCAPS - огромная структура с кучей флажков чего может или не может видеокарта. Версии шейдеров, максимальное количество треугольников за раз, какие умеет режимы блендинга, какие тянет текстуры и прочее, прочее, прочее. По грубым подсчетам их там несколько сотен, если уже не тысяч. В каждой версии DX их добавляется, уже есть Caps3, а самый важный вопрос - где нынче самая большая Caps Database (кстати, сейчас самая большая и хорошая caps database уже в DX SDK. В MS не поленились составить табличку на все существенные карты. MS нас таки любит, мужики).

Но на самом деле, все, конечно, плохо )

Миссия DX в абстрагировании от железа уже давно выражается не в том, что разработчик не знает, на каком железе запускается, а в том, чтобы MS не давала вендорам сильно убегать друг от друга.

Хоть DX и меньше подвержен легаси, но все равно дерьмецо накапливается и разнообразится (Катамари, Катамари!).
А так как MS нас любит, то готовит в DX10 революцию, и даже DIP cost обещают уменьшить (а иначе UI Висты и не среднерять, гы-гы-гы). За что я ее, на самом деле, люблю тоже. И совсем не безответно!
Tags: ,
 
 
SotC - это Shadow of the Colossus, одна из самых интересных игр для PS2 прошлого года. "От создателей ICO", все дела. Я в нее сам еще играл мало, поэтому за геймплей пока не расскажу.
Японская традиция - время перехода на новое поколение это не упадок, а расцвет прошлого. Действительно, в конце жизни платформы технологии доходят до предела, из железяки выжимается максимум, и PS2 показывает чудеса. К сожалению, у MS такого опыта еще нет и последний год первый xbox тупо загибается.
SotC в этом смысле - те самые технологические чудеса. И мы бы просто на них так и пялились, если бы не был написан Making of SotC:

http://www.dyingduck.com/sotc/making_of_sotc.html
UPD: Эта ссылка больше не работает. Вот тут текст, а тут картинки. За поиски спасибо [info]black_wolf_ltd.

Эта ссылка обошла большую часть индустриальных блогов и форумов, но почему-то никаких комментариев больше чем "Афигенна круто" не было. А там на самом деле афигенно круто, мужики :)

Я попытаюсь написать небольшой дайджест на тему того, что там стоит рассматривать и чему можно учиться у японцев даже на PC.

lots of tech stuff )

На самом деле, Making of SotC - очень мощный пейпер и безусловно входит в top5 самых полезных пейперов года. Он весь про чудеса на пальцах в одном из самых интересных технологически проектов. Он про то, что совсем не обязательно делать как написано в доках производителей железа, про то, насколько геймдев креативная область, и про то, какие чудеса можно творить даже со слабым железом, если постараться.
Это лучший формат технологического постмортема, и стоит в среднем десятка научных пейперов и 3-4 докладов с КРИ. Японцами остается только восхищаться.
Очень жалко, что таких рассказов мало. Призываю всех писать и рассказывать также, чтобы и вами восхищались.
Tags: ,