mez0n (mez0n) wrote,
mez0n
mez0n

Про отладку, автомобили и кексы

На работе отлаживаю баг.

Есть мейн тред. Есть рендер тред. Есть ГПУ. Все параллельные. И вот как-то получается что когда мейн тред занимается переаллоцированием шедоумапов, ГПУ в эти шедоумапы продолжает рендерить. Ну и падает все, конечно, на ассертах оверврайта границ выделенных блоков.

В ходе отладки у меня появилось ощущение, что рендертред состоит из "слоев". Первый слой - самый честный. Просто стейт машина - берет что-то из очереди риквестов и рендерит. Дальше - хуже. Начинаются какие-то счетчики концов кадра, флаги "свободен ли ГПУ", "занят ли ГПУ" (да-да есть два, и один не всегда равен !другому), "кончать рендеринг".
Писалось видимо так - написали "что-то", потом - "оба! не работает", хлопаем себя по лбу, вписываем еще флажок. И так 5 раз. И все бы ничего, я так тоже код пишу, но ведь когда закончил надо подумать и сделать общО и правильно. А этот шаг был пропущен. И поскольку вся эта хрень _вроде_ работает, никого не беспокоит небольшой бардак. Убедиться в том, что она работает верно, очень сложно, потому как надо тестировать не типичные тайминги, а ЛЮБЫЕ (медленный ГПУ, быстрый ГПУ, медленный мейнтред, и т.п.).

Но в общем-то пост меня побудило написать не это. Мне вот интересно, есть ли в другой какой-то индустрии такая же тема? Ну вот двигатель машины, например так же делают? Типа сначала умные дядьки сидят и проектируют. По цифрам все ОК, делаем образец, тестим. БАХ, взрывается цилиндр. "Мдаааа", говорят дядьки и качают головами. И предлагают другой металл использовать для цилиндра. Собрали опять движок. Оп-ца. А мощность фиговая. "Мдааа", говорят дядьки, и опять качают головами - "Ну давайте что ли в фильтр что-нибудь зафигачим". И в итоге от изначального проекта остаются рога и ноги. А что это значит? А это значит что что-то может быть неучтено. Если у дома 100 кирпичей заменить на кексы, дом может упасть. 

Но не падают дома. И автомобили не взрываются. Наверное это только мы такие - программеры - качаем головами, говорим "Мдааа...", дебажим и фиксим.

 

Subscribe

  • (no subject)

    Давно не пишу в ЖЖ, но пользуюсь аккаунтом, чтобы отвечать в чужих журналах. Сообщения тоже доходят.

  • Сто лет прошло, ничего не меняется.

    "...А как слушают наши студенты? Точно гимназисты, они читают на лекциях посторонние книги, газеты, переговаривают-ея и проч., и проч. Само посещение…

  • Книга

    Прочитал "Masters of Doom" про Джонов Ромеро и Кармака. Книжка незатейливая и явно художественная. Она короткая, мне хватило двух с половиной часов.…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 2 comments