Archive for July 2009

Миллион батчей в секунду на Xbox360

Во время очередного витка оптимизации на Xbox360, захотелось очень дешевых по производительности батчей – т.к. батчей в кадре было достаточно много, а CPU времени они кушали еще больше, при тысяче батчей в кадре тратилось 20-25 ms на установку констант и вызов DP. CPU лимит в 40-50 FPS явно не устраивал.

Как потом выяснилось часть оверхеда была от использования D3D Effects в качестве шейдерной системы. Большое количество Load Hit Store и двойное копирование всех констант, были одной из проблем…

Continue reading ‘Миллион батчей в секунду на Xbox360’ »

one-liner

AK. Bursting stacks since 1947.

// shared (c) look4awhile, shodan

Gamedeff party в Москве – 8 августа

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

Детали уточняются, но думаю по простому – хороший кабак, вкусный алкоголь, разговоры за интересное около геймдева и не только. Я со своей стороны буду счастлив поговорить за жизнь в корпорации, филейные части DirectX и графики в общем, и прочая. Другие, я уверен, будут жечь еще ярче.

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

Цена абстракции-4 (или все, что мама не рассказывала про C++)

Оказывается, за весь 2008й год не было ни одного поста про ценник абстракции. Это недопустимо, надо исправлять. Сегодня мы узнаем, как поиметь +30% в одну строчку, заменив if ( bool-flag ) на (int)bool-flag.

В коде случился такой паттерн: у объекта есть два указателя на разные куски в памяти, в зависимости от флажка надо выбирать либо по 1му, либо по 2му. (Для справки, это некая статическая часть данных, которая расшарена между несколькими копиями объектов, и динамическая часть, которая очень личная и которой объект владеет).

Написал return bDynamic ? m_pDynamic[iOffset] : m_pStatic[iOffset], слегка задумался. Поля m_pStatic и m_pDynamic в объекте лежат подряд. bool bDynamic хоть и занимает целый байт, принимает все равно значения 0 и 1. Догадается компилятор заменить это дело на (*(&m_pStatic+bDynamic))[iOffset], и выгоднее ли это?

Результаты MSVC 2005: да, выгоднее на 30%. Нет, не догадывается.

Результаты gcc 4.2.3: не уверен, что правильно понимаю ассемблерную нотацию, но похоже, догадывается сразу. Поэтому разницу померить не удается, результаты одинаковые.

Код бенчмарка под катом.

Continue reading ‘Цена абстракции-4 (или все, что мама не рассказывала про C++)’ »

про нерабочие логины

Все пишут, и я напишу. Если вдруг не работает логин на блог с жалобами “Invalid registration status”, нужно отписать мне почтой, ОБЯЗАТЕЛЬНО сразу указав свой логин. Перед собачкой надеюсь понятно что, после собачки геймдефф точка ком. Чисто для справки, это антиспам плагин SABRE чудит, но отключать его нельзя (иначе спам опять заебет).

Побег из просторных офисов.

 У меня есть две новости.

Новость первая – в “Нивал Онлайн” ( или компания уже называется “Аструм Нивал”, я не в курсе ) открывается вакансия gfx программера. Работа не особо пыльная, если с надрочкой. Проект забавный, коллектив внятный ( Яся и Вова, куку ). Зарплату могут платить хорошую, как линейную функцию от скилла, с хорошим коэффициентом. Это я все без иронии, если что.

Менеджмент в компании разный – есть два менеджера, один добрый, второй соответственно не очень. Работают на контрастах.

Новость вторая. Мной подписано заявление об увольнении с 1 августа сего года, в связи с чем я ищу работу в стольном граде Москва. Можно в индустрии, можно за пределами. Умею писать под разное странное железо на низком уровне, вот успешно драйверцы для RSX зафигачил http://psp.jim.sh/svn/listing.php?repname=ps3ware&path=%2Ftrunk%2Flibps3rsx%2Fsrc%2Finit%2Fps3rsx%2F. Умею писать высокий уровень. Умею разное. По укурке защитил диссертацию по алгебраической топологии, уже работая в Нивале. Пожелание одно – работа без овертаймов. Я и с ними могу, если специально и заранее со мной согласовать, но у меня имеется стойкая аллергия на сей счет.

Не стесняйтесь c предложениями, пишите на IronSPeter ‘at’ gmail.com. Только имейте в виду, что с 1 августа по 21 августа буду в безынтернетных далях и отвечать на заманчивые предложения не смогу. На новое место работы выйду с сентября, если найду внятную контору.

Под катом – неофициальная часть, отчасти грустная.

Continue reading ‘Побег из просторных офисов.’ »

Reflections on Peopleware – Part 1

Ай-ай-ай, как же это я забыл закросспостить. Исправляюсь.
Пока Windows7 неумолимо движется к завершению (FTW), на работе спадают страсти, свирепствует грипп, а погода меняется от замечательной к обычной, я сижу дома и читаю книжки. Я
теперь почти везде читаю – аудиокнижки завоевывают жизнь в автомобиле и оттуда осаждают спорт и быт.

Вот, например, я несколько месяцев назад таки осилил классику софтверного project management – Peopleware ДеМарко и Листера.

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

Давайте я очень тезнисно эти мысли запишу и попробую прорефлексировать с точки зрения устройства вещей в MS. Если заодно и вы свои мысли выскажете, то значит совсем не зря книжку прочитал – азбучные вопросы обсуждать очень полезно.

Continue reading ‘Reflections on Peopleware – Part 1’ »