Опубликовано 16 июня 2010, 23:08 под Decapitated - Organic Hallucinosis весь шестой раз за день

А нам то хуле? Ебись он в рот!

Представьте, что вы в цейтноте1 на купленном на миллионный грант компьютере в IV-224 отлаживаете следующий код:

PresentParameters PresentationParameters = new PresentParameters();
PresentationParameters.Windowed = true;
PresentationParameters.SwapEffect = SwapEffect.Discard;
PresentationParameters.BackBufferCount = 1;
PresentationParameters.BackBufferWidth = CanvasWidth;
PresentationParameters.BackBufferHeight = CanvasHeight;
PresentationParameters.EnableAutoDepthStencil = true;
// PresentationParameters.AutoDepthStencilFormat = DepthFormat.D24S8;
PresentationParameters.AutoDepthStencilFormat = DepthFormat.D16; // Шмукорок
for (PresentationParameters.MultiSample = MultiSampleType.SixteenSamples;
     PresentationParameters.MultiSample >= MultiSampleType.TwoSamples;
     PresentationParameters.MultiSample--)
{
    try
    {
        Device = new Device(0, DeviceType.Hardware, Canvas, CreateFlags.HardwareVertexProcessing, PresentationParameters);
        break;
    }
    catch (InvalidCallException)
    {
    }
}
if (Device == null)
{
    PresentationParameters.MultiSample = MultiSampleType.None;
    Device = new Device(0, DeviceType.Hardware, Canvas, CreateFlags.HardwareVertexProcessing, PresentationParameters);
}

Device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, (float)CanvasWidth / (float)CanvasHeight, 0.1f, 10000f);

Device.SetRenderState(RenderStates.Lighting, true);
InitializeLights();

// Try to set up a texture minify filter, pick anisotropic first
if (Device.DeviceCaps.TextureFilterCaps.SupportsMinifyAnisotropic)
{
    Device.SamplerState[0].MinFilter = TextureFilter.Anisotropic;
}
else if (Device.DeviceCaps.TextureFilterCaps.SupportsMinifyLinear)
{
    Device.SamplerState[0].MinFilter = TextureFilter.Linear;
}
// Do the same thing for magnify filter
if (Device.DeviceCaps.TextureFilterCaps.SupportsMagnifyAnisotropic)
{
    Device.SamplerState[0].MagFilter = TextureFilter.Anisotropic;
}
else if (Device.DeviceCaps.TextureFilterCaps.SupportsMagnifyLinear)
{
    Device.SamplerState[0].MagFilter = TextureFilter.Linear;
}

Падает он с NullReferenceException на строке с Device вот здесь:

try
    {
        Device = new Device(0, DeviceType.Hardware, Canvas, CreateFlags.HardwareVertexProcessing, PresentationParameters);
        break;
    }
    catch (InvalidCallException)
    {
    }

Кто тут, скажите мне пожалуйста, может кинуть NullReferenceException? Правильно, никто: 0 — неуправляемый указатель, DeviceType.Hardware — enum, Canvas — неуправляемый указатель, CreateFlags.HardwareVertexProcessing — enum, PresentationParameters мы вон сверху создали. Конструктор Microsoft.DirectX.Direct3D.Device кидает NullReferenceException при правильных аргументах? Сомневаюсь, что мы нашли баг в дудке — не того поля ягоды. На всякий случай убираю цикл по MultiSample — какой уж там антиалиасинг на компьютерах, где даже 32-битный Z-буфер пришлось поставить под сомнение (единственное изменение в графике по сравнению с прошлым проектом, нормально работавшим). Где он теперь падает? Правильно, вот здесь:

if (Device == null)
{
    PresentationParameters.MultiSample = MultiSampleType.None;
    Device = new Device(0, DeviceType.Hardware, Canvas, CreateFlags.HardwareVertexProcessing, PresentationParameters);
}

DeviceType.Software — бесполезно. CreateFlags.SoftwareVertexProcessing — бесполезно. Слава Богу, рядом были ПМИ'шники, заметившие, что у них наш код прекрасно работает. И даже показавшие исходники. Мне. Мои исходники. Один-в-один. За исключением того, что никаких

if (Device.DeviceCaps.TextureFilterCaps.SupportsMinifyAnisotropic)
{
    Device.SamplerState[0].MinFilter = TextureFilter.Anisotropic;
}

там не было. Уже даже не помню когда добавил это, пытаясь сделать текстуры менее убогими. Как бы то ни было, после удаления этого блока всё заработало. И DepthFormat.D24S8, кстати, тамошняя видеокарта прекрасно поддерживала.

Microsoft блядь! Ёбаный в рот! Какого хуя код, находящийся после выполняемого в данный момент, мешает его выполнению? Что за параллельные технологии, пиздец! Все всё прекрасно поняли, что отладчик в Visual Studio 2005 лажает и полтора часа водил меня, слепого идиота, за нос, но тем не менее. Программерская мистика))))

А всего лишь за несколько часов до этого кошмара я спокойно и с любовью шлифовал напильником орудие казни для сыпящейся и мажущейся ленты:

Катушка и так была сломана :-[

Намотал, снял и выкинул. Пока только пол-километра, но всё равно жалко

Вот опять после ~45 дней аптайма наглухо завис десктоп. В принципе, вернуть к жизни было ещё можно, но лень, да и 2.6.34 затестить охота, так что я ребутнулся. Процесс загрузки приятно удивил: теперь фреймбуффер рисовался на двух мониторах:

Опять выёбываюсь двумя мониторами

...а Кефииир не отстаёт!. Но это только на первый взгляд. Иксы наотрез оказались запускаться: не загружался nvidia.ko, аргументируя это тем, что Device Not Found. Увлекательное и, самое главное, комфортное гугление в links привело меня к теме «ПРОБЛЕМЫ ПОСЛЕ ОБНОВЛЕНИЯ НА 10.04», где посоветовали отключить nouveau. Так точно, загружен, сука. После внесения очередного борца за свободу в blacklist, фреймбуффер на втором мониторе привычно пропал, зато всё остальное заработало. За 45 дней ни одного ломающего всё к хуям обновления в Arch (если не считать этот случай и, конечно же, дурацкий Pidgin)... Растём и развиваемся!

Ну и бабу Любу не забываем упомянуть

[1] — В семестре 32 балла, на экзамене можно получить максимум 40, итого 4 будет только если очень сильно постараться. Но не беда, ведь у нас же есть Проект! За который тоже чего-нибудь дадут... если сдадим. В итоге дали 40 баллов (30 за сам проект , 10 за идею с SFX-архивом), нечестолюбивые могут даже не приходить на экзамен.
Комментарии (3)
s_mordvinov
17 июня 2010, 01:11
S Q #1
чё за баба Люба?
чё за баба Люба? :(
themylogin
17 июня 2010, 10:07
S Q #2
Когда ты ушёл, мы с Сашей всё же пошли за хотдогами. У него была сотня, и его заставили искать без сдачи. Без сдачи не было. Тогда он сказал мне типа давай я тебе ещё с неё куплю. И попить ещё. Ну купили. В итоге надо было 107 рублей. У меня мелочью только 3. И у него только 4 Ну круто получилось

Потом на Маркса идём. А там возле метро Яна с чотким (мимо ходят пацаны и он с ними здоровается, всю башню, наверное, знает, если телефон спиздят - обращаемся). И тут же подруливает баба Люба и просит два рубля. И потом сетует: типа ну чо такие молодые люди, хорошо одетые - и два рубля жалко.

Потом ещё посмотрели на ноутбуке (здесь не шутим!) Катины или чьи там ещё "материалы" по ОСОСТ. Половина - беллетристика с citkit.ru, да ещё и с комментами, причём первый "мандрива такое г...", надо будет на экзамене так ответить
Когда ты ушёл, мы с Сашей всё же пошли за хотдогами. У него была сотня, и его заставили искать без сдачи. Без сдачи не было. Тогда он сказал мне типа давай я тебе ещё с неё куплю. И попить ещё. Ну купили. В итоге надо было 107 рублей. У меня мелочью только 3. И у него только 4 =-O Ну круто получилось *THUMBS UP* Потом на Маркса идём. А там возле метро Яна с чотким (мимо ходят пацаны и он с ними здоровается, всю башню, наверное, знает, если телефон спиздят - обращаемся). И тут же подруливает баба Люба и просит два рубля. И потом сетует: типа ну чо такие молодые люди, хорошо одетые - и два рубля жалко. :( Потом ещё посмотрели на ноутбуке (здесь не шутим!) Катины или чьи там ещё "материалы" по ОСОСТ. Половина - беллетристика с citkit.ru, да ещё и с комментами, причём первый "мандрива такое г...", надо будет на экзамене так ответить :-!
ramwoolf
17 июня 2010, 12:59
S Q #3
беллетристику по ОСОСТ скидывала Ира Кайзер.... а Мандрива - уже само как ругательство звучит... бабой Любой клянусь..
беллетристику по ОСОСТ скидывала Ира Кайзер.... а Мандрива - уже само как ругательство звучит... бабой Любой клянусь..
Добавить комментарий
Войдите через  Доступные тэги: <b>, <i>, <s>, <u>, <a href="">, <img src="" /> (загрузить), <pre>, <quote>
Теги
1nsk Alternative E-Business Embedded GNU/GPL-софт HTML/CSS ICQ KDE last.fm Linux Linuxnsk Live Lyceum game Microsoft Motivator MySQL New Age P2P Party Photoshop PHP Python Qt4/C++ SEO Sibnet thelogin.ru Timelapse Web 2.0 Webdev Webstream Windows Wireless А я говорил! Авто Админ Алексеев Аниме Атмосфера Безобразие Бесплатный Wi-Fi Блоги Большой бизнес Боты Бред Бухать Бытовуха Велосипед Весна Вечер Взлом Винил Винтаж Вконтакте Вода Воспоминания Гетто Гламур Гопота Горский Графити Грузовик Дача Двор Девушки Девченки!!! Деньги Дизайн Дом Домофоны Драка Драки Еда Железо Животные Заведения общественного отдыха Задроты Затулинка Зима Игрушки Игры Идея Интересно Интернет Исследование История Казань Карикатура Квартира Класс Компьютеры Коромшук Коты КПК Кран Красиво Криминал Крыша Курение Лето Литература Лицей Лицей НГТУ Лохи Магнитофоны Маркса Мат Математика Машинный перевод Мегафон Менты Метро Мечты Мифы Мне стыдно Мобайл Можга МТС Музыка Мультикасса Мультики Мы помним Надписи Наука НГТУ Недвижимость Непоняятно Новосибирск Носители Ноутбуки Ночь Обидно Обман Образование Общественный транспорт Омск Опечатки Орфография Осень Парк Периферия Пиратство Плохо Погода Поезд Помойка Праздники Презрение Природа Провайдеры Программирование Протест Радиотехника Растения Реклама Религия и вера Ретро Рисунок Руины Рэп Салют Сервер Серверы Сервис Сериалы Скринкаст Скриншоты Смешно СМИ Снег Собаки Совет Софт Спам Спасём Россию Спецтранспорт Стоп-ляп Стройка Студяга Танцы ТВ Типа страх Трамваи Транс Транспорт Уважаю Ужас Умный дом Утро Филдрепорты Философия Форум ФПМИ Хикки Хостинг Цитатник Школа Школа 208 ЭГ Эксперимент Юго-Западный
Twitter 16-06-2010
Lorem Ipsum
Бессмертные - Вечные Годы В Пути К Воротам Кладбища.
Lorem Ipsum
У Sex Pistols хуёвая пластинка с глухим звуком:(.
Lorem Ipsum
Гнойный конъюнктивит!
Lorem Ipsum
Конъюктивит!
Lorem Ipsum
Заебался болеть, до ФПМИ такой хуйни не было :-!
Lorem Ipsum
Заебался болеть, до ФПМИ такой хуйни не было :-!
Lorem Ipsum
Be my father, be my brother!
Lorem Ipsum
«АвтоВАЗ» начнет выпуск снегоходов-сенокосилок.
Lorem Ipsum
Люди, как засунуть этот код в С++. Я вставляю в form1, но не работает. ПОМОГИТЕ ПОЖАЛУЙСТА СРОЧНО!!!
Lorem Ipsum
Первое (и последнее), что я слушал с dbx была американская кассета с Майклом Джексоном. Сразу после включения- шок: мёртвая тишина с КАССЕТЫ!