r/RuProgrammers

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

Стоило давно это сделать, просто как-то не задумывался. Но в принципе, теперь у моего крейта есть отдельный движок, где можно все отлаживать. Зачем вам это нужно? Понятия не имею.

TL;DR: написал визуализатор для своего Vulkan-движка чтобы не сдохнуть от рендердока, потому что я конченный дебил.

Короче. Каждый раз когда у меня что-то ломалось в графике, я открывал рендердок, ждал пока он прожуёт 38^(10000мб) дамп, искал в нём один забытый барьер и закрывал рендердок. Потом это повторялось через час. В какой-то момент я просто сел и написал свой инструмент потому что всё равно быстрее.

Что есть сейчас.

  • Граф кадра. Все ноды (passes, resources, submits) и связи между ними. Лейаут через Sugiyama чтобы 200 нод не превращались в кашу. Когда что-то добавляется или удаляется, граф плавно перестраивается, а не моргает.
  • Sync DAG. Лайны очередей, бары сабмитов, детектор циклов и орфан-семафоров. Если compute ждёт graphics а graphics ждёт compute - я это вижу до того как получу смерть устройства.
  • Память. Полоски VkDeviceMemory с цветными квадратиками аллокаций. Наводишь - видно вызовы, размер, возраст. Сверху бары по хипам. Утечку видно сразу, не надо ждать пока прод упадёт по OOM.
  • Профилировщик пассов и жэпэу-таймлайном отдельно. Первый показывает сколько проц писал команды, второй настоящие гпу-таймстемпы. Раздельно потому что таймстемп-период это ад и без vkGetCalibratedTimestamps они не коррелируют, врать не буду.
  • Валидация. Лог с фильтрами по серьезности (severity), поиском, автопрыжком на ошибку. Связан с графом - если варнинг про image layout, нода с этим имеджем подсвечивается красной точкой.
  • Мониторинг канарейки (гуард бэндов). Интеграция с hardened allocator из моего крейта - читай hardened malloc из GrapheneOS, который я прикрутил к Vulkan. Когда что-то пишет за границы буфера, видно паттерн актуальных байт против ожидаемых, с подсветкой отличающихся. 0xCD - кто-то прочитал неинит, 0xDD - UAF, ASCII - строка улетела не туда. Полезно.
  • Детерминизм. Таблица ранов с агрегатным хешем. Если десятый ран отличается от первых девяти - строка красная, кнопка открывает диф-битмапу с покрашенными в красное пикселями которые разошлись. Невидимые гонки атомиков становятся видимыми.
  • Табы наверху, можно открывать несколько одинаковых, перетаскивать, пинить. Сохраняется между запусками. Скруббер для прокрутки назад на 16к последних событий, Ctrl+P замораживает поток. Снапшоттинг в файл - можно прислать кому-то и тот откроет, если не взорвется.

Архитектура примитивная до неприличия. Кольцевая память между моей либой и вьювером, 256 байт на запись, лоззи при переполнении. Продюсер пишет, вьювер читает. Падает один - другой ждёт.

  • Рендер вообще без пайплайнов. CPU растеризатор пишет в BGRA буфер, потом vkCmdCopyBufferToImage в свопчейны. Никаких шейдеров, никаких VE внутри инструмента валидации.

Чего нет.

  • Capture/replay отдельных кадров. Это рендердок, я туда не лезу.
  • ГПУ-сталлинг на уровне волн. Это Nsight и RGP.
  • Linux и macOS. Пока только винда, рендер платформонезависимый, но клей к отвратительным в реализации X11/Wayland не написан.

Хз, надо ли публиковать вообще, но если вдруг кому тут понадобится и кто точно такой же мазохист как и я - вылью на гх. А, нуида, все снова zero-dependency, кроме ash, разумеется, иначе с вулканом я там вообще не поработаю. А так... Ну, Win FFI)))

Если будете говорить что я переизобрёл <ээээээээнструмент> - я знаю, мне быстрее было написать чем учиться <эээээээээээнструменту>. Суп вилкой есть тоже можно.

*Да, Tracy я видел. Мне нужен был вулканоспецифичный аудит барьеров и трекинг дескрипторов, а не зоны таймлайна.

u/int7bh — 2 days ago

Фриланс

Всем привет)
Хочу начать подрабатывать фрилансом. Развивать свои навыки и нарабатывать опыт. Можете поделиться своим опытом на фрилансе, как положительным так и отрицательным. Опыта у меня мало в этом всём, но развиваться тоже хочется....
Спасибо, заранее)

reddit.com
u/Sad_Demand_9833 — 2 days ago

Сумасшедшая идея порта Gothic 1 на игровую систему PSP

Решил попробовать себя в сфере разработки.

И задумался о том что PSP (64mb версии) в теории должны бы потянуть первую часть Gothic.

Изучив архитектуру консосоли пришёл к выводу что на оригинальном движке готика никак не заработает😑

И тут у меня появилась идея написать новый, удобный и модульный движок который будет задействовать всё оборудование консоли, и на который можно будет перенести Gothic 1

u/Ambitious-Mango9764 — 17 hours ago

Насколько сильно издеваются над такими парнями как мы на срочной службе в армии?

reddit.com
u/Time_Bit7167 — 2 days ago

Как настроить Happ?

Использую Hiddify. Но иногда он ложится, ищу альтернативу, говорят Happ нормальный.

Ваше мнение? Какие три буквы используете вы? И те кто использует Happ, как вы его настроили?

u/ImportantEnergy94A — 3 days ago
🔥 Hot ▲ 64 r/RuProgrammers

Как найти работу?

Уже месяц нахожусь в поисках. 3 с лишним года разработки в Bitrix как-будто бы коту под хвост. Я дико хочу сменить стек, перейти на Laravel (предпочтительно, потому что осваивал и писал небольшие петы), или Symfony, но шансов ноль. Даже не рассматривают. Плевать, что язык один. И я от части понимаю, но все же...
Проблема, что и компании, которые специализируются на Битрикс не хотят разговаривать. Смотришь свой опыт, смотриишь требования в вакансии - идеальный match. В лучшем случае сразу отказ. Понимаешь, что там "автоответчик" и никто никого на самом деле не ищет. Но бывает: "А вот вам тестовое". Смотришь - пара часов вечером после работы. Делаешь, отправляешь, забываешь. Просто не отвечают. Ни одного ревью. Не говоря о чем-то еще. Есть пара сообщений с моей ссылкой, которые уже две недели не прочитаны.
Параллельно читаешь медийку. ATS, вакансии для статистики, "тупые HRки", которые ничего не читают, а скармливают CV ChatGPT, экономический кризис в стране. Не понятно, правда - нет, кому верить, куда смотреть. Я м*дак, никому со своей эспертизой ненужен или просто времена такие? Или вообще все вместе.

Что делать?

reddit.com
u/klazklazker — 4 days ago

АМА/ 12 лет в разработке, беспилотные машины делаю

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

Задавайте любые вопросы

reddit.com
u/Admirable_Group_4106 — 4 days ago

Твердо и четко. Делаем тестовое или нет. Если да то за сколько или бесплатно за идею ?

Ну что, господа хорошие. Джуны, мидлы, сеньоры и стремящиеся. Пора показать, кто на что горазд. В данное время сфера находится в самой что ни на есть жопе. И при трудоустройстве благодаря инфоцыганам стало так плохо, что даже очень. Как насчёт ответить на щепетильный вопрос про тестовое задание, на которое даже не посмотрят и не будет даже фидбека? Делаем или не делаем, просим навалить добавки или готовы доплачивать лишь бы прикоснутся к заветному ?

reddit.com
u/Ok-Tower3860 — 5 days ago

Работа программистом

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

reddit.com
u/Melodic-Life-7198 — 5 days ago

Будет ли профит от изучения Lua для моддинга игр, если ИИ пишет рабочий код быстрее меня?

Делаю моды для Teardown, навайбкодил разные скрипты, совершенно не понимаю как они работают (кроме функций API игры, хотя не у всех по названию понятно, что они делают) и как заменять их части, а не весь код целиком. Визуально я могу понять только то, что ИИ использует не те API или опять повторяет свою ошибку. Могу только менять цифры и названия того, что должен находить скрипт в сцене, один раз какую-то ИИ опечатку исправил интуитивно, сообщения отладки я скидываю ИИ, но он присылает код с той же ошибкой. Я не понимаю сколько времени мне понадобится на освоение Lua с нуля и насколько эффективней я буду делать скрипты. ИИ конечно требует много попыток на получение рабочего кода и может упорно игнорировать условия, неверно понимать описанный алгоритм действий с первого раза, но он напишет 1000+ строк рабочего кода за пару дней пыток, а я вручную наберу первую не рабочую версию за неделю. Я плохо понимаю, какой объём данных нужно переварить, написано, что Lua лёгкий, но мне кажется любой ЯП это тема для изучения на минимум лет 5 для базы, у меня нет желания столько времени на это тратить, не факт что мне это будет интересно так долго, а Lua вроде не особо востребован на рынке труда, тем более от джуна. Есть какой-то способ эффективнее работать с ИИ, или стоит изучить язык? Сколько времени это займёт до момента, когда я смогу разбирать код хотя-бы по блокам и тратить меньше контекста на один баг?

u/G-Fifd — 5 days ago

Простите... Российская альтернатива зарубежным стандартам конфиг файлов

Вы часто пишете конфиги? Я очень. Но вы не думали о том, что Запад хочет захватить Россию и в программировании. Мы же знаем американцев! Обязательно свинью нам подложат. Поэтому я создал наш, российский стандарт конфиг файлов. Встречайте УЛАД. Сразу к его преимуществам:

✅ Только родные, российские буквы (никакого латинского влияния)

✅ Исконно русские кавычки-ёлочки

✅ Полное импортозамещение «из коробки»

✅ Интуитивно понятно даже ребёнку

✅ Имя файла — строго на великом и могучем

Парсер написан на Python. Буду рад контрибьюторам

https://github.com/zovteam/ulad

(Если что, этот формат был создан чисто по приколу, потому что мне было скучно, а этот пост — шутка, впрочем, как и стандарт. И ещё извините за мой плохой русский, я безграмотен)

UPD: Пример конфигурации: https://github.com/zovteam/ULAD/blob/524e1ffbd9d1fe4bbc446dc1da0ad9788fb06414/%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80.%D1%83%D0%BB%D0%B0%D0%B4 Тут конфиг стал выглядеть ещё хуже, поэтому ссылка

UPD2: Если кому-то вдруг понравится формат КЛЮЧ ЭТО => ЗНАЧЕНИЕ или массив через А В НЁМ, то любые контрибъюции приветствуются. в вики есть раздел что было бы неплохо написать

u/stastpoff — 6 days ago

Skill для ИИ агента, который помогает отделить "догадки" от "фактов"

Всем привет! Собрал небольшой skill для тех, кто использует ИИ в рабочих задачах и иногда сталкивается с ситуацией, когда модель уверенно чинит “очевидную” проблему, но без нормальной проверки.

Основная идея: ИИ часто может превращать догадки в уверенность. Посмотрел один файл, поверил первой гипотезе и пошел править код. Skill assumption-checkpoint добавляет к этому процессу небольшую проверочную прослойку.

Он заставляет агента остановиться в трех местах:

• перед выводом о причине бага;

• перед изменением кода;

• перед ответом “готово”.

На этих этапах агент должен кратко зафиксировать:

• Assumption: ...

• Evidence checked: ...

• Remaining risk: ...

• Next verification: ...

Надеюсь этот skill будет вам полезным

GitHub: https://github.com/alexandrershov/assumption-checkpoint-skill

u/1lowe_ — 5 days ago

Где деплоить сайт?

По стеку: react+бэкенд на spring'е (фреймворк java) + postgres.

Столкнулся с такой ситуацией, что сделал диплом, но нужно его задеплоить, чтобы он был доступен по домену из браузера.

Продукт готов, домен я купил (.ru), а вот недорогие сервисы для деплоя не знаю: мне нужен сервер всего на ~2 недели, а платить Яндексу или селектел от 2к не хочу.

Вообще планирую сейчас все завернуть в докер, так как бд уже в контейнере и уже с докера подтягивать на сервер.

Вопрос следующий: подскажите, пожалуйста, сервисы для деплоя на домен с моим стеком, желательно с использованием докера, хотя может быть возможно деплоить фронт на vercel, а бэкенд с БД - отдельно?

reddit.com
u/RightEvolution — 7 days ago

Чат-бот в МАКС

Всех приветствую, дорогие коллеги. Хочу узнать, был ли у кого-то опыт создания чат-бота в МАКС. Может быть для себя или коммерческая задача.
Сейчас сам планирую там его делать и читаю всю документацию по этому вопросу. Честно сказать там столько воды, которая ещё и солёная, что я иногда в ступор попадаю, читая некоторые пункты.
Если был опыт, поделитесь, пожалуйста.

reddit.com
u/Sad_Demand_9833 — 5 days ago

Курс по java

Подскажите какой-нибуть хороший курс по Java на youtube или на другой площадке, по типу Stepik

reddit.com
u/heiz-chill — 6 days ago

Работа за границей

Народ, кто проживает в РФ, но работает в Европе/штатах или ещё где, за границей в общем, подскажите, каким образом происходит получение зп, нужно оформлять какую то иностранную карту + ИП или как вообще это происходит. Поделитесь пожалуйста опытом и расскажите на какие ещё нюансы, неудобные моменты можно нарваться. Спасибо!

reddit.com
u/According_Hat_3346 — 6 days ago