Изначально программа с игрой "Охота на лис" для калькуляторов типа МК-61 была опубликована в 12 номере журнала «Наука и Жизнь» за 1985 год (автор А. Несчетный). Впоследствии вышел ряд версий для различных систем. Теперь данная игра адаптирована и для Linux. Редакция основана на версии для ZX-Spectrum (можно запустить эмулятор в браузере)...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=53778
Вот раньше вирутальная версия была, по лесам носились с бластерами за лисами... было время...
100% есть какая-либо геокешинг-базед игра для полей и лесов.
https://ru.wikipedia.org/wiki/Спортивная_радиопеленгация aka "Охота на лис".
Pokemon: GO)
Где-то сделал facepalm один Владимир Гостюхин...
Известный программист мира, паркующийся на тротуаре перед входом в общественное здание который?
Шо, прямо на своей знаменитой фуре? Которая с бабой на кабине?
И я в лесу бегал но не с бластерами, а с пеленгаторами
либо уже взрослый бегал, либо воображение слабое :)
А где 🦊?
В версии для iPhone.
В ♦️
>Проект написан на языке Си с использованием Wayland и API Vulkan.Такая древняя игра, под такие современные технологии. А если у меня на семерке нет ни того ни другого?
Для тебя есть сапер.
Там совсем другие правила.
Тогда cygwin.
Попроси хозяина, пусть он тебе напихает ещё 3 цифры и тогда, возможно, у тебя всё будет.
Типа у твоей божественной ос нету хозяина ню ню...
Хрюкай это каждый раз, когда на твоей ОС нет чего-то, что есть на ОС-конкурентах.
Надо было ставить Линукс
И в Linux далеко не все испоьльзуют Wayland и API Vulkan, а Xorg и API OpenGL.
Изначально планировалось сделать поддержку и X, и Wayland, что бы наглядно сравнивать трудозатраты (с OGL против Vulkan и так всё понятно -- в последнем случае только что бы появилась чёрная поверхность, требуется боле 300 строк, а для треугольника -- 700). Но пока автор слегка перетрудился, потому публикуется как есть.
700 строк? Это с рантаймом? Просто, в голом opengl, не то, чтобы меньше выйдет.
> 700 строк? Это с рантаймом?Это ещё не считая создания окна. "Рантйам" Vulkan это Mesa, vulkan-loader по сути прокси.
> Просто, в голом opengl, не то, чтобы
> меньше выйдет.Вопрос в том, кто так делает, когда первый попавшийся пример https://jan.newmarch.name/Wayland/EGL/
вызывает просто eglCreateWindowSurface() + eglSwapBuffers()
На голом 3+ OpenGL. На 2-м все еще не так сложно.
Браузер в "Семёрке" есть, зайдите в поисковик, поищите версию для Windows, должны быть. Или по по приведённой в новости ссылке https://zxart.ee/rus/soft/game/fox-hunt-ohota-na-lis/ попробуйте в том же браузере эмулятор Спектрума (если железо потянет).
> А если у меня на семерке нет ни того ни другого?семёрка чего? CentOS? Или Дебиан?
Очевидно что ВАЗ.
ОС 7 TKS ;)
Поставь VMware и заведи виртуальный Linux.
OMG, я помню эту статью. В то время до дыр зачитывали Науку и Жизнь, другой информации не было. Потом появился Радио РК 86, я даже половину деталей достал, но так и не собрал, удалось достать БК-0010, который потом на ПК8000 заменил.
>даже половину деталей досталого, олдфаги и правда в треде
Внезапно встретил дерево в лесу?
Бэкашку подключить к черно-белому телевизору тот еще квест был
Надо было ещё найти исправный телевизор или детали для ремонта....
Спектрум круче. Не забуду "Пентагон-48" и "Электронику МС-5305"
МС-5305 жуткая штуковина. Друг купил для iS-DOS специальную дискетку для форматирования 10-ти дисткет, так дисковод запорол на ней метку-счётчик. Хорошо, что мы успели научиться и без той дискетки форматировать.
У нас журналы Радио были в библиотеке колледжа.
Дома тоже, но старые. Любил почитывать. И толстый "Справочник радиолюбителя 1987" любимая книга была, она и сейчас лежит. Украинского издательства. Там не только справочник, но и схемы. Кое какие я сделал.
Но в охоту на лис поиграть не удалось. Хотя, мечтал собрать рацию.Зарубежная аппаратура говно. Вставил кассету с диктофонными записями в муз. центр, он ее мять стал.
А еще была такая портативная игра Ну погоди. Надо было яйца собирать, которые падали с четырех углов все быстрее и быстрее.
О, вспомнил ништяковый комп Радио86РК. Только его похоже, нереал было сделать. Два года по ом выходили публикации опечаток в схеме.
> публикации опечаток в схемеКстати, зачем их делают? Опечатки. Я тоже сталкивался. Например, на выходе усилителя резистор не 100 Ом, а 100 кОм пишут.
Просто человеческий фактор, имхо.
В 80е компьютерных средств верстки в редакции не было, всё вручную фигачилось. Вот и результат.PS: Ну, кстати, для сильно продвинутых радиолюбителей, это не проблема, насколько я понимаю. Оценить величину напряжения в цепи и понять, что номинал резистора явно не тот, что должен.
Когда будет Лунный Коршун?
Был в Орбитере.
Вот за это я и люблю опенсорц и энтузиастов.
Спасибо вам за возрождение моего любимого детства.
для возвращения в то детство не хватает оригинального UI как на MK61, доброго лампового, когда каждый раз с замиранием ждешь секунду-другую
они на авито пачками по 300-400р продаются. в т.ч. рабочие. и даже МК61 и МК62. было бы желание
есть эмулятор MK-61 на андроиде
Как обычно, ремейки не дотягивают до оригинала. Лучше ставьте эмулятор МК-61 и играйте в оригинал.
А железный МК-61 слабо?)
Слабо написать эмулятор калькулятора?
Люди давно написали, но не под жму/пинус и прочие каличные поделия. http://www.emulator3000.org/rus-c3.htm пруфлинком
Это древность. У меня в колледже был крутой китайский инженерный калькулятор. Считал все и быстро. Даже комплексные числа.
А эта Электроника на сложных расчетах долго думает.
У меня в ящике стола все еще рабочий MK-52 лежит.. Дорогой моему сердцу раритет, на котором я когда-то учился кодить :)
Эх, были времена! Пойду посмотрю на свой Б3-34.
везет, а мой вот потерялся. Есть правда один полуживой TI-80, детям показывать, но это уже совсем не то, там уже целый Z80 внутре, что твой спектрум...
А был ещё МК-85 на Васике.
Был МК-85. Но про него было меньше статей написано. Т.е. игр почти не было. Да, там Бейсик. Но высота экрана специфическая. Плюс язык многословен. А вот на МК-90 мне денег не дали. Было дорого. И время бедное.
На на кой этой игрульке Vulkan, она же плоская? На ZX-Spectrum ваще никакого 3D-ускорения нет и работает.
Vulkan тут только ради того, что бы понять на практике, что это вообще такое. Рисовать пиксели процессором, как Вы сами заметили, автор научился ещё на ZX-Spectrum.
> что бы понять на практике, что это вообще такое...и выкинуть на.
Вы мыслите в правильном направлении. Но есть один нюанс: https://www.khronos.org/members/list
По стечению обстоятельств, Vulkan (как замену OGL) продвигают те, кто железки под него делает (и драйвера под железо пишет).
Так что вопрос в том, кого именно выкинут.
Кэпом быть не надо, чтобы понять, что производятлы железок пропихивают всеми способами свои свистоперделки.
Вы малость опоздали с предикцией -- свистелки внедрили на этапе "OGL". Vulkan это про другое. Это что бы -- по пожеланиям трудящихся, а как же ещё -- перенести часть забот системщиков на прикладников.
А вы говорите что Линукс не для игр
Ну дык подтянули Линукс... до этой игры
жОсткий мир Linux-игр...
> "Охота на лис" для калькуляторов типа МК-61 ... (1985)
> ... Wayland и API Vulkan, AMD64 ... (2020)... суперкластер из топ-500 ... (2035)
К 2035 уже станет понятно для чего нужны супертопы из ваших 500.) Спутник Ви почемуто у нас появился, а не у владельцев топ 500. )
Зачётное наблюдение! +100500
Да в одной стране все делают, что бы рекордную запись сделать, а в другой просто, что бы работало безоасно и надежно.
Это правда, ещё лет десять назад top500 представлял из себя спецолимпиаду.Когда ресурсов много -- "можно и на питоне пощитать". В смысле циклов, а не обвязки.
>> "Охота на лис" для калькуляторов типа МК-61 ... (1985)
>> ... Wayland и API Vulkan, AMD64 ... (2020)Кстати, версия 85-го года занимала 85 шагов (байт).
Сейчас обранный Clang-ом исполняемый файл чуть меньше 60 КБ (без упаковки, задача минимализации размера не ставилась). 5 КБ из них музыка.
Если же убрать Vulkan (заменить программной отрисовкой), то из 4000 строчек исходного текста останется, грубо, 3000. Но будет не очень быстро.
> заменить программной отрисовкой... Но будет не очень быстро.Было время, Дум использовал не более 8М оперативы, программную отрисовку и не тормозил даже на том железе.
>не более 8М оперативыЯ смотрю не я один выучил слова Page Fault задолго до того как узнал что они на самом деле значат.
>> заменить программной отрисовкой... Но будет не очень быстро.
> Дум использовал не более 8М оперативы, программную отрисовку и не
> тормозил даже на том железе.Осталось разобраться с причинно следственными связями.
1. Каков был объём видеопамяти?
2. Какова была (суммарная) производительность процессора (с учётом пропускной способности ШД)?
3. Во сколько раз увеличилась каждая величина?Может так оказаться, что "то железо" - это как раз причина, почему Doom не тормозил.
Какие 8 мегов? Я в него на NCR system 3225 играл (386SX-33, 4 мега оперативы, без сопроцессора). Притормаживало, конечно, но подозреваю что не из-за памяти, а из-за циррозной видюхи (Cirrus Logic, ага).
Вот https://youtu.be/3v7cFGneuaw
играют на Z80 3,5 МГц и 128К
> NCR system 3225 играл (386SX-33, 4 мега оперативы, без сопроцессора)Совершенно случайно не победитель соросовской олимпиады 1993 года? ;-)
...квантовый эмулятор (забандлован, отвязать без перекомпиляции нельзя) классического компьютера... (2040)
Ну вот, а вы говорите на линуксе игор нет.Вон какие топовые игры портируют на самую элитную ОС в мире.
Не то, что там всякие игры AAA класса на приставках.
ПеКа - лучшая приставка.
ну наконец-то в линуксе появились игры
astahl@UberIgel:~/1TiB_1$ ./foxhunt
«Охота на лис» версия 0.12-альфа.
Звуковое устройство hw: No such file or directory.
Звуковое устройство default: 2 канала, 48000 Гц (буфер 2880 дискретизаций, сэмпл 20 мс).
Создан эмулятор музыкального процессора AY-3-8912.astahl@UberIgel:~/1TiB_1$
Это всё.
скомпилил с сырцов. точно такая ж петрушка... пульс-аудио чтоль ему надо, а я её выпилил...
Звук выводится через ALSA, и проблемы с ним не должны влиять на работоспособность.
Wayland не инициализируется.
connect(9, {sa_family=AF_UNIX, sun_path="/var/run/user/0/wayland-0"}, 28) = -1 ENOENT (Нет такого файла или каталога)и это тоже!
Вы под root запускаете?wl_display_connect() берёт переменную XDG_RUNTIME_DIR и прибавляет к ней $WAYLAND_DISPLAY или "wayland-0". Это всё уже внутри libwayland-client.so.
да, под root
libwayland-client.so есть обе и 32 и 64бит...
А композитор Wayland тоже под root запустили и он работает? Без композитора не запустится, X11 пока не поддерживается.
А надо под рут?? Почему обычный композитор без рута нельзя? Он работает, wayland-проги запускаются.
А foxhunt вот так:$ ./foxhunt
«Охота на лис» версия 0.12-альфа.
Звуковое устройство hw: 2 канала, 48000 Гц (буфер 1920 дискретизаций, сэмпл 20 мс).
Звуковое устройство default: 2 канала, 48000 Гц (буфер 2880 дискретизаций, сэмпл 20 мс).
Создан эмулятор музыкального процессора AY-3-8912.
Получен интерфейс wl_compositor.
Получен интерфейс wl_shm.
Получен интерфейс wl_seat.
Получен интерфейс xdg_wm_base.
Инициализация Vulkan:
Доступно графических процессоров с поддержкой Vulkan: 2.
Сопроцессор №1 поддерживает семейств очередей: 1.
Графические операции: да.
Вывод изображения: да.
Интегрированный процессор Vulkan 1.2.131 Intel(R) UHD Graphics 630 (CFL GT2) [8086:3e9b] v5001008.
Сопроцессор №2 поддерживает семейств очередей: 3.
Графические операции: да.
Ошибка сегментирования (стек памяти сброшен на диск)
Могу дебажную версию под gdb. Символы стоят базовые. К нвидии мне взять их негде (dual graphics laptop, prime. и weston и игра запускаются по умолчанию на интеле):(gdb) r
Starting program: /dev/shm/foxhunt/foxhunt_dbg
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
«Охота на лис» версия 0.12-альфа.
Звуковое устройство hw: 2 канала, 48000 Гц (буфер 1920 дискретизаций, сэмпл 20 мс).
[New Thread 0x7ffff3352700 (LWP 9243)]
Звуковое устройство default: 2 канала, 48000 Гц (буфер 2880 дискретизаций, сэмпл 20 мс).
Создан эмулятор музыкального процессора AY-3-8912.
[New Thread 0x7ffff2b51700 (LWP 9244)]
Получен интерфейс wl_compositor.
Получен интерфейс wl_shm.
Получен интерфейс wl_seat.
Получен интерфейс xdg_wm_base.
Отсутствует валидатор Vulkan VK_LAYER_KHRONOS_validation.
Инициализация Vulkan:
[New Thread 0x7fffdd543700 (LWP 9245)]
[New Thread 0x7fffdcd42700 (LWP 9246)]
[New Thread 0x7fffd327e700 (LWP 9247)]
[New Thread 0x7fffd2a7d700 (LWP 9248)]
Доступно графических процессоров с поддержкой Vulkan: 2.
Сопроцессор №1 поддерживает семейств очередей: 1.
Графические операции: да.
Вывод изображения: да.
Интегрированный процессор Vulkan 1.2.131 Intel(R) UHD Graphics 630 (CFL GT2) [8086:3e9b] v5001008.
Сопроцессор №2 поддерживает семейств очередей: 3.
Графические операции: да.Thread 1 "foxhunt_dbg" received signal SIGSEGV, Segmentation fault.
0x00007ffff1360353 in ?? () from /lib64/libnvidia-glcore.so.450.66
Проблем в системе ни с nvidia, ни с vulkan, ни с weston нет! Собрал vkcube с вейленд-бэкнедом, запускаю - отлично работает, крутится из под weston нативно. Так что баг в foxhunt...
> Могу дебажную версию под gdb. Символы стоят базовые. К нвидии мне взять
> их негде (dual graphics laptop, prime. и weston и игра запускаются
> по умолчанию на интеле):Это Вы запускаете на Интеле, а игра нашла подходящий Интел, но дальше пробует следующий граф.процессор (в Вулкане нет умолчаний, всё лежит на плечах клиента, т.е. косяк мой - можно было на первом подходящем запускать).
>[оверквотинг удален]
> Вывод изображения: да.
> Интегрированный процессор Vulkan 1.2.131 Intel(R) UHD Graphics 630 (CFL GT2) [8086:3e9b]
> v5001008.
> Сопроцессор №2 поддерживает семейств очередей: 3.
> Графические операции: да.
> Thread 1 "foxhunt_dbg" received signal SIGSEGV, Segmentation fault.
> 0x00007ffff1360353 in ?? () from /lib64/libnvidia-glcore.so.450.66
> Проблем в системе ни с nvidia, ни с vulkan, ни с weston
> нет! Собрал vkcube с вейленд-бэкнедом, запускаю - отлично работает, крутится из
> под weston нативно. Так что баг в foxhunt...Драйвера nvidia закрытые? Они, если правильно помню, не поддерживали Wayland.
Насколько я в час ночи понял, подает на вызовеr = vkGetPhysicalDeviceSurfaceSupportKHR(devs[d], i, vk->surface, &presentation);
который на предыдущей итерации цикла работал (как раз проверка, поддерживает ли устройство вывод изображения, в данном случае в итоге на порверхность Wayland).
Вот так должно запуститься на первом подходящем граф.процессоре, т.е. в Вашем случае на Интел.
diff --git a/src/vulkan.c b/src/vulkan.c
index 1f4bea3..c2b5e66 100644
--- a/src/vulkan.c
+++ b/src/vulkan.c
@@ -239,6 +239,7 @@ static VkResult select_gpu(struct vk_context *vk)
if (gfx_q != inv && presentation != inv) {
vk->gpu = devs[d];
print_gpu_properties(vk->gpu);
+ d = num_dev; // если я совсем сплю, то тут поможет return r;
break;
}
}
> Драйвера nvidia закрытые? Они, если правильно помню, не поддерживали Wayland.Поддерживается давно.
Раньше не поддерживалась конкретная вещь, которую использовал сеанс gnome на wayland. Но это уже обошли. Другое дело, что некоторые хитрые вещи типа XWayland полноценно не работают. Но чистый wayland - без вопросов.Впрочем, в данном случае у меня сеанс X11, под которым я запускаю weston.
> Это Вы запускаете на Интеле, а игра нашла подходящий Интел, но дальше пробует следующий граф.процессор (в Вулкане нет умолчаний, всё лежит на плечах клиента, т.е. косяк мой - можно было на первом подходящем запускать).
Умолчаний может и нет, но я же явно могу задавать процессор.
$ vulkaninfo |grep 'GPU id :'
GPU id : 0 (Intel(R) UHD Graphics 630 (CFL GT2)):
GPU id : 1 (GeForce GTX 1050 Ti with Max-Q Design):
$ __NV_PRIME_RENDER_OFFLOAD=1 vulkaninfo |grep 'GPU id :'
GPU id : 0 (GeForce GTX 1050 Ti with Max-Q Design):
GPU id : 1 (Intel(R) UHD Graphics 630 (CFL GT2)):И vulkan софт без явного выбора процессора этому следует. Это стандарт...
> Вот так должно запуститься на первом подходящем граф.процессоре, т.е. в Вашем случае на Интел.
Работает, спасибо. Но! Только на интеле. А как же быстрая графика nvidia? на ней падает.
Запускаю weston с графикой nvidia (__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 weston):
...
[01:04:03.217] EGL version: 1.5
[01:04:03.217] EGL vendor: NVIDIA
...
EGL Wayland extension: yes
[01:04:03.244] Using gl renderer
Работает. Запускаю foxhunt. С интелвоской графикой падает так:
Получен интерфейс wl_compositor.
Получен интерфейс wl_shm.
Получен интерфейс wl_seat.
Получен интерфейс xdg_wm_base.
Отсутствует валидатор Vulkan VK_LAYER_KHRONOS_validation.
Инициализация Vulkan:
Доступно графических процессоров с поддержкой Vulkan: 2.
Сопроцессор №1 поддерживает семейств очередей: 1.
Графические операции: да.
Вывод изображения: да.
Интегрированный процессор Vulkan 1.2.131 Intel(R) UHD Graphics 630 (CFL GT2) [8086:3e9b] v5001008.
Сопроцессор подключён.
Допустимое количество кадров последовательности: 4..4294967295
Поддерживаются наложения: 0x3
Создано описание визуализатора.
Создан модуль ретушёра вершин (1200 байт).
Создан модуль ретушёра фрагментов (412 байт).
Создана топология конвейера.
Создан базовый конвейер.
Создано хранилище команд графического процессора.
Подключено указательное устройство.
Пульт управления: defaultThread 1 "foxhunt_dbg" received signal SIGSEGV, Segmentation fault.
vk_acquire_frame (vk=0x773c60) at src/vulkan.c:822
822 VkResult r = vkAcquireNextImageKHR(vk->device, vk->swapchain, 0,
С нвидиевской падает так:Получен интерфейс wl_compositor.
Получен интерфейс wl_shm.
Получен интерфейс wl_seat.
Получен интерфейс xdg_wm_base.
Отсутствует валидатор Vulkan VK_LAYER_KHRONOS_validation.
Инициализация Vulkan:
[New Thread 0x7fffdd543700 (LWP 35031)]
[New Thread 0x7fffdcd42700 (LWP 35032)]
[New Thread 0x7fffd327e700 (LWP 35033)]
[New Thread 0x7fffd2a7d700 (LWP 35034)]
Доступно графических процессоров с поддержкой Vulkan: 2.
Сопроцессор №1 поддерживает семейств очередей: 3.
Графические операции: да.Thread 1 "foxhunt_dbg" received signal SIGSEGV, Segmentation fault.
0x00007ffff1360353 in ?? () from /lib64/libnvidia-glcore.so.450.66
#0 0x00007ffff1360353 in ?? () from /lib64/libnvidia-glcore.so.450.66
No symbol table info available.
#1 0x00007ffff1360ea6 in ?? () from /lib64/libnvidia-glcore.so.450.66
No symbol table info available.
#2 0x0000000000403d0b in select_gpu (vk=0x71bcd0) at src/vulkan.c:232
gfx_q = true
presentation = 0
i = 0
num_qf = 3
props = 0x850660
d = 0
devs = 0x8505e0
inv = 4294967295
num_dev = 2
r = VK_SUCCESS
А что касается нативного wayland на nvidia (не weston из под X11, как я дергаю..), то где-то полтора года как поддержали EGLStreams в mutter и kwin: https://medium.com/@alex285/how-to-enable-eglstreams-on...
>> Драйвера nvidia закрытые? Они, если правильно помню, не поддерживали Wayland.
> Поддерживается давно.
> Раньше не поддерживалась конкретная вещь, которую использовал сеанс gnome на wayland. Но
> это уже обошли. Другое дело, что некоторые хитрые вещи типа XWayland
> полноценно не работают. Но чистый wayland - без вопросов.Вот что пишет автор wlroots в Sway версии 1.5:
If you are using the Nvidia proprietary driver for any reason, you have two choices:
1. Uninstall it and use nouveau instead
2. Use X11+i3 and close your browser tab> Впрочем, в данном случае у меня сеанс X11, под которым я запускаю
> weston.
>> Это Вы запускаете на Интеле, а игра нашла подходящий Интел, но дальше пробует следующий граф.процессор (в Вулкане нет умолчаний, всё лежит на плечах клиента, т.е. косяк мой - можно было на первом подходящем запускать).
> Умолчаний может и нет, но я же явно могу задавать процессор.
> $ vulkaninfo |grep 'GPU id :'
> GPU id : 0 (Intel(R) UHD Graphics 630 (CFL GT2)):
> GPU id : 1 (GeForce GTX 1050 Ti with Max-Q Design):
> $ __NV_PRIME_RENDER_OFFLOAD=1 vulkaninfo |grep 'GPU id :'
> GPU id : 0 (GeForce GTX 1050 Ti with Max-Q Design):
> GPU id : 1 (Intel(R) UHD Graphics 630 (CFL GT2)):Утилита выводит вообще всё, и NVidia достаточно поддерживать VK_KHR_xcb_surface, что бы оказаться в выводе.
Скорее, превильнее смотреть, поддерживает ли конкретный GPU требуемый тип поверхности (Surface type = VK_KHR_wayland_surface). Заодно, поддерживается ли презентация:
vulkaninfo | egrep -C3 'queue|resent|wayland_surface'
> И vulkan софт без явного выбора процессора этому следует. Это стандарт...Это расширение NVidia. Когда задана переменная окружения, загружается прослойка VK_LAYER_NV_optimus. Она меняет приоритеты граф.процессоров при перечислении. Вот что пишут https://download.nvidia.com/XFree86/Linux-x86_64/435.21/READ...
сами авторы: "большинство приложенй используют первый попавшийся GPU" (most Vulkan applications will use the first GPU reported by Vulkan).Сам же Vulkan позвляет (и это одна из целей создания) выбрать для построения сцены один графроцессор, а для презентации - другой, при этом не обязывает производителя оборудования совмещать обе эти функции в едином устройстве. Тот код, где происходит падение, ищет устройство сочетающее в себе "Графические операции" и "Вывод изображения". И падает при проверке, поддерживает ли nvidia презентацию.
>> Вот так должно запуститься на первом подходящем граф.процессоре, т.е. в Вашем случае на Интел.
> Работает, спасибо.Спасибо, пока опубликовал так.
> Но! Только на интеле. А как же быстрая графика nvidia?
> на ней падает.Полагаю, быстрее я добавлю поддержку XCB, она решит и запуск у остальных под Иксами, и позволит локализовать данный крах, проверив гипотезу.
> Запускаю weston с графикой nvidia (__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1
> weston):
> ...
> [01:04:03.217] EGL version: 1.5
> [01:04:03.217] EGL vendor: NVIDIA
> ...
>
> EGL Wayland extension: yes
> [01:04:03.244] Using gl rendererEGL (и gl renderer) не используется, это вообще другое -- там достаточно вызвать eglCreateWindowSurface() https://jan.newmarch.name/Wayland/EGL/
а в Vulkan вся инициализация реализуется приложением.>[оверквотинг удален]
> Инициализация Vulkan:
> [New Thread 0x7fffdd543700 (LWP 35031)]
> [New Thread 0x7fffdcd42700 (LWP 35032)]
> [New Thread 0x7fffd327e700 (LWP 35033)]
> [New Thread 0x7fffd2a7d700 (LWP 35034)]
> Доступно графических процессоров с поддержкой Vulkan: 2.
> Сопроцессор №1 поддерживает семейств очередей: 3.
> Графические операции: да.
> Thread 1 "foxhunt_dbg" received signal SIGSEGV, Segmentation fault.
> 0x00007ffff1360353 in ?? () from /lib64/libnvidia-glcore.so.450.66В том же месте и падает. Насколько вижу требования к vkGetPhysicalDeviceSurfaceSupportKHR https://www.khronos.org/registry/vulkan/specs/1.2-extensions...
в приложении выполнены.
Подозрительный 3й параметр - surface типа VkSurfaceKHR - описатель поверхности Vulkan, получается из поверхности Wayland. То есть где-то внутри сохраняется указатель на последнюю. В случае Nvidia там NULL. И vkAcquireNextImageKHR() тоже относится к стадии презентации, т.е. у краха в случае запуска в Weston на Nvidia, похоже, аналогичная причина.Возможно, валидатор что-то покажет (в Gentoo это пакет vulkan-layers, в остальных должно быть что-то похожее). fuxhunt_dbg подхватывет прослойку, если она установлена в сиcтеме.
> Вот что пишет автор wlroots в Sway версии 1.5:
> If you are using the Nvidia proprietary driver for any reason, you
> have two choices:))
Это может всего лишь означать его нежелание разбираться.
Я не говорю, что нвидия белые и пушистые - они знатно поиздевались над сообществом со своим EGLStreams. Но говорить, что оно вообще не работает тоже нельзя..> Утилита выводит вообще всё, и NVidia достаточно поддерживать VK_KHR_xcb_surface, что бы
> оказаться в выводе.Я всего лишь показываю, как в PRIME задавать ГПУ по умолчанию. В т.ч. для vulkan. Это работает что в простом приложении типа vkcube, что в более хитрых - в зависимости от переменной менятся GPU и для opengl, и для vulkan приложений. Конечно, бывают те, которые позволяют задать GPU явно.
> Скорее, превильнее смотреть, поддерживает ли конкретный GPU требуемый тип поверхности
> (Surface type = VK_KHR_wayland_surface). Заодно, поддерживается ли презентация:
> vulkaninfo | egrep -C3 'queue|resent|wayland_surface'Я и для интела не вижу такой поверхности, если запускать из под X11. Если из под wayland.. то vulkaninfo падает ))
> Это расширение NVidia. Когда задана переменная окружения, загружается прослойка VK_LAYER_NV_optimus.
Это понятно. Им пришлось внедрять свое тк кроме них над dual graphics под линуксом никто особо не работал..
> сами авторы: "большинство приложенй используют первый попавшийся GPU" (most Vulkan applications
> will use the first GPU reported by Vulkan).Ага
> Сам же Vulkan позвляет (и это одна из целей создания) выбрать для
> построения сцены один графроцессор, а для презентации - другой, при этом
> не обязывает производителя оборудования совмещать обе эти функции в едином устройстве.
> Тот код, где происходит падение, ищет устройство сочетающее в себе "Графические
> операции" и "Вывод изображения". И падает при проверке, поддерживает ли nvidia
> презентацию.Ок. Вероятно, что-то не так на нвидии в комбинации wayland+vulkan. wayland+OpenGL можно, vulkan можно, но в комбинации падает.
> Полагаю, быстрее я добавлю поддержку XCB, она решит и запуск у остальных
> под Иксами, и позволит локализовать данный крах, проверив гипотезу.Под иксами с vulkan + nvidia ничего падать не будет, я полагаю. Но спасибо за желание разобраться!
> EGL (и gl renderer) не используется, это вообще другое -- там достаточно
> вызвать eglCreateWindowSurface() https://jan.newmarch.name/Wayland/EGL/
> а в Vulkan вся инициализация реализуется приложением.да-да, я всего лишь показываю, что weston использует GL Rendeder при запуске на нвидии
> в приложении выполнены.
> Подозрительный 3й параметр - surface типа VkSurfaceKHR - описатель поверхности Vulkan,
> получается из поверхности Wayland. То есть где-то внутри сохраняется указатель на
> последнюю. В случае Nvidia там NULL. И vkAcquireNextImageKHR() тоже относится к
> стадии презентации, т.е. у краха в случае запуска в Weston на
> Nvidia, похоже, аналогичная причина.
> Возможно, валидатор что-то покажет (в Gentoo это пакет vulkan-layers, в остальных должно
> быть что-то похожее). fuxhunt_dbg подхватывет прослойку, если она установлена в сиcтеме.Поставил. Подхватило. Но ничего лучше не вывело, просто еще функция в трейсе. Дебагинфо к вулкану и валидаторам стоит, но..
#0 0x00007fffdf55e353 in ?? () from /lib64/libnvidia-glcore.so.450.66
No symbol table info available.
#1 0x00007fffdf55eea6 in ?? () from /lib64/libnvidia-glcore.so.450.66
No symbol table info available.
#2 0x00007fffdda95b30 in vulkan_layer_chassis::GetPhysicalDeviceSurfaceSupportKHR () at layers/generated/chassis.cpp:4890
No locals.
#3 0x0000000000403d2c in select_gpu (vk=0x8578f0) at src/vulkan.c:234
gfx_q = true
presentation = 0
i = 0
num_qf = 3
props = 0x98dcb0
d = 0
devs = 0x98dbb0
inv = 4294967295
num_dev = 2
r = VK_SUCCESS
#4 0x0000000000406c77 in vk_window_create (display=0x440ad0, surface=0x85a500, width=800, height=600, vk_context=0x7fffffffd310)
at src/vulkan.c:1107
vk = 0x8578f0
#5 0x000000000040aaa0 in window_create (window=0x7fffffffd2e0) at src/wayland_window.c:899
__PRETTY_FUNCTION__ = "window_create"
>> Скорее, превильнее смотреть, поддерживает ли конкретный GPU требуемый тип поверхности
>> (Surface type = VK_KHR_wayland_surface). Заодно, поддерживается ли презентация:
>> vulkaninfo | egrep -C3 'queue|resent|wayland_surface'
> Я и для интела не вижу такой поверхности, если запускать из под
> X11. Если из под wayland.. то vulkaninfo падает ))"Ничто так не утешает, как несчастье ближнего" (с) Особенно, если падает в той же /lib64/libnvidia-glcore.so.450.66
У vulkaninfo https://github.com/KhronosGroup/Vulkan-Tools/issues/136#issu... был похожий баг на Intel HD Graphics 630 + GeForce GTX 1050 Ti. Падала так же vkGetPhysicalDeviceSurfaceSupportKHR() из-за невалидного параматра surface (Xlib surface вместо XCB). Но - в X11 и в случае Intel.
>> Полагаю, быстрее я добавлю поддержку XCB, она решит и запуск у остальных
>> под Иксами, и позволит локализовать данный крах, проверив гипотезу.
> Под иксами с vulkan + nvidia ничего падать не будет, я полагаю.
> Но спасибо за желание разобраться!Падает примерно на таком коде (это фрагмент Mesa, )
VkResult_surface имеет смысл только в контексте struct wsi_device, о которой Nvidia ничего не знает. В лучшем случае реализация может проверить хендл, поискав в таблице. Но спецификация Vulkan требует валидный параметр, значит проверка не обязательна, поэтому её и нет (она вынесена в прослойку валидатора).
wsi_common_get_surface_support(struct wsi_device *wsi_device,
uint32_t queueFamilyIndex,
VkSurfaceKHR _surface,
VkBool32* pSupported)
{
ICD_FROM_HANDLE(VkIcdSurfaceBase, surface, _surface); // VkIcdSurfaceBase *surface = (VkIcdSurfaceBase*)_surface;
struct wsi_interface *iface = wsi_device->wsi[surface->platform];return iface->get_support(surface, wsi_device,
queueFamilyIndex, pSupported);
}>[оверквотинг удален]
>> Возможно, валидатор что-то покажет (в Gentoo это пакет vulkan-layers, в остальных должно
>> быть что-то похожее). fuxhunt_dbg подхватывет прослойку, если она установлена в сиcтеме.
> Поставил. Подхватило. Но ничего лучше не вывело, просто еще функция в трейсе.
> Дебагинфо к вулкану и валидаторам стоит, но..
> #0 0x00007fffdf55e353 in ?? () from /lib64/libnvidia-glcore.so.450.66
> No symbol table info available.
> #1 0x00007fffdf55eea6 in ?? () from /lib64/libnvidia-glcore.so.450.66
> No symbol table info available.
> #2 0x00007fffdda95b30 in vulkan_layer_chassis::GetPhysicalDeviceSurfaceSupportKHR
> () at layers/generated/chassis.cpp:4890Если передаю невалидный хендл вместо surface, начинает падать, но при этом валидатор предупреждает: Invalid VkSurfaceKHR Object 0x56190d13ac00. The Vulkan spec states: surface must be a valid VkSurfaceKHR handle
Сделал версию для X11, если ещё интересно (foxhunt_xcb, немного не дотягивает до Wayland). https://github.com/STrusov/foxhunt/releases/tag/v0.20
> Сделал версию для X11, если ещё интересно (foxhunt_xcb, немного не дотягивает до
> Wayland). https://github.com/STrusov/foxhunt/releases/tag/v0.20Корректно работает на обоих GPU (правда выглядит смешно с полупрозрачностью). Потребовало странную библиотеку xcb-cursor (странную в смысле что из моря софта на моей машине никто раньше не требовал).
Инициализация Vulkan:
Доступно графических процессоров с поддержкой Vulkan: 2.
Интегрированный процессор Vulkan 1.2.131 Intel(R) UHD Graphics 630 (CFL GT2) [8086:3e9b] v5001009.
Поддерживает семейств очередей: 1.
Графические операции: да.
Вывод изображения: да.
Сопроцессор подключён.
Допустимое количество кадров последовательности: 3..4294967295
Поддерживаются наложения: 0xa
Доступен формат VK_FORMAT_B8G8R8A8_SRGB.
Созданы семафоры захвата кадров (3).
Создано описание визуализатора.
Создан модуль ретушёра вершин (1200 байт).
Создан модуль ретушёра фрагментов (412 байт).
Создано хранилище команд графического процессора.Инициализация Vulkan:
Доступно графических процессоров с поддержкой Vulkan: 2.
Дискретный процессор Vulkan 1.2.142 GeForce GTX 1050 Ti with Max-Q Design [10de:1c8c] v71c70000.
Поддерживает семейств очередей: 3.
Графические операции: да.
Вывод изображения: да.
Сопроцессор подключён.
Допустимое количество кадров последовательности: 2..8
Поддерживаются наложения: 0x1
Доступен формат VK_FORMAT_B8G8R8A8_SRGB.
Созданы семафоры захвата кадров (2).
Создано описание визуализатора.
Создан модуль ретушёра вершин (1200 байт).
Создан модуль ретушёра фрагментов (412 байт).
Создано хранилище команд графического процессора.
>> Сделал версию для X11, если ещё интересно (foxhunt_xcb, немного не дотягивает до
>> Wayland). https://github.com/STrusov/foxhunt/releases/tag/v0.20
> Корректно работает на обоих GPU (правда выглядит смешно с полупрозрачностью).Спасибо, что проверили. Если прозрачность на обоих идентична, сильно не бейте -- тяжелое детство, Ч/Б телевизор вместо монитора.
> Потребовало
> странную библиотеку xcb-cursor (странную в смысле что из моря софта на
> моей машине никто раньше не требовал).Да, странно, что в 2020м подавляющая часть софта использует libXcursor. Выбрал XCB, поскольку она ближе к Wayland и сравнение наиболее честно (и там есть libwayland-cursor.so). Когда читал документацию, возникло чувство дежавю: "быстро, асинхронно, Xlib отстала от жизни" (что характерно, официальный туториал до сих пор не дописан). На деле софт использует Xlib (из того что быстро ищется, Qt работает через XCB, но с курсорами справляется своими средствами). В общем, очень похоже на Wayland, только без "без тиринга!". И оно возникло лет дцать назад. Зато можно попробовать строить прогнозы по дальнейшему развитию, наблюдая аналогию в ретроспективе.
> Инициализация Vulkan:
> Доступно графических процессоров с поддержкой Vulkan: 2.
> Дискретный процессор Vulkan 1.2.142 GeForce GTX 1050 Ti with Max-Q Design
> [10de:1c8c] v71c70000.
> Поддерживает семейств очередей: 3.
> Графические операции: да.
> Вывод изображения: да.
> Сопроцессор подключён.
> Допустимое количество кадров последовательности: 2..8Вот тут должна быть разгадка. Якобы заявлена двойная буферизация, в то время как у Intel тройная, а в Wayland вообще заявляет минимум 4 (но при правильном подходе можно использовать всего 2, за счёт третьего буфера в композиторе). Надеюсь, созрею и раскопаю, действительно ли там незаметно организуется 3-й буфер где-то в видеопамяти Intel-а.
> Поддерживаются наложения: 0x1
Вот это (VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR) означает, что окно не может быть прозрачным. Далее Vulkan именно в таком режиме и работает.
>>> Сделал версию для X11, если ещё интересно (foxhunt_xcb, немного не дотягивает до
>>> Wayland). https://github.com/STrusov/foxhunt/releases/tag/v0.20
>> Корректно работает на обоих GPU (правда выглядит смешно с полупрозрачностью).
> Спасибо, что проверили. Если прозрачность на обоих идентична, сильно не бейте --
> тяжелое детство, Ч/Б телевизор вместо монитора.Между intel/nvidia? Идентична, конечно, просто выглядит.. очень странно с просвечивающим текстом фона и без заголовка. https://postimg.cc/LnBFNZcG - правда в браузере не так видно, но можно загрузить исходное изображение.
> средствами). В общем, очень похоже на Wayland, только без "без тиринга!".
> И оно возникло лет дцать назад. Зато можно попробовать строить прогнозыПроблема в том, что оно до сих пор не доделано, документации нет, примеров нет.. По Xlib большие книжки даже были.. и куча man страниц.. а тут - пусто.
>> Поддерживаются наложения: 0x1
> Вот это (VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR) означает, что окно не может быть прозрачным.
> Далее Vulkan именно в таком режиме и работает.Эмм окно прозрачное в Xcb при запуске на любой графике.
>>>> Сделал версию для X11, если ещё интересно (foxhunt_xcb, немного не дотягивает до
>>>> Wayland). https://github.com/STrusov/foxhunt/releases/tag/v0.20
>>> Корректно работает на обоих GPU (правда выглядит смешно с полупрозрачностью).
>> Спасибо, что проверили. Если прозрачность на обоих идентична, сильно не бейте --
>> тяжелое детство, Ч/Б телевизор вместо монитора.
> Между intel/nvidia? Идентична, конечно, просто выглядит.. очень странно с просвечивающим
> текстом фона и без заголовка. https://postimg.cc/LnBFNZcG - правда в браузере
> не так видно, но можно загрузить исходное изображение.Фон это напоминание о тетрадном листочке, на котором приходилось играть в калькуляторную версию. :) А "заголовок" и так есть своеобразный - в правом верхнем углу. Перетаскивать можно за любую неактивную (то есть кроме кнопок "старт/стоп" и клеток поля) точку окна. Потому не дублировал. Цвета, возможно, стоило бы в конфиг вынести, пока цвет фона можно поменять в #define COLOR_BACKGROUND в начале main.c - последняя компонента 0.25f это непрозрачность, т.е. 1 даст полностью непрозрачное окно.
>> средствами). В общем, очень похоже на Wayland, только без "без тиринга!".
>> И оно возникло лет дцать назад. Зато можно попробовать строить прогнозы
> Проблема в том, что оно до сих пор не доделано, документации нет,
> примеров нет.. По Xlib большие книжки даже были.. и куча man
> страниц.. а тут - пусто.Сама XCB доделана, Xlib реализована как обёртка над ней. Xlib выглядит проще, меньше писанины, наверное, потому и используют. Вероятно, так будет и через 10-20 лет, будут писать под Xlib, а та работать через XWayland.
>>> Поддерживаются наложения: 0x1
>> Вот это (VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR) означает, что окно не может быть прозрачным.
>> Далее Vulkan именно в таком режиме и работает.
> Эмм окно прозрачное в Xcb при запуске на любой графике.Вот это и странно.
> Фон это напоминание о тетрадном листочке, на котором приходилось играть в калькуляторную
> версию. :) А "заголовок" и так есть своеобразный - в правом
> верхнем углу. Перетаскивать можно за любую неактивную (то есть кроме кнопок
> "старт/стоп" и клеток поля) точку окна. Потому не дублировал. Цвета, возможно,
> стоило бы в конфиг вынести, пока цвет фона можно поменять в
> #define COLOR_BACKGROUND в начале main.c - последняя компонента 0.25f это непрозрачность,
> т.е. 1 даст полностью непрозрачное окно.Ясно, те бай дизайн. Ну что же )
>> Эмм окно прозрачное в Xcb при запуске на любой графике.
> Вот это и странно.Не вижу ничего странного. Прозрачность чего-то там в вулкане не имеет отношения к прозрачности окна же? Окнам с дырками в иксах сто лет в обед, а полупрозрачные окна появились с первыми композиторами, задолго до этих ваших вулканов. Если финальное окно имеет альфа канал, композитор это рендерит.. какое этому всему дело до того, что там в вулкане поддерживается?
>>> Эмм окно прозрачное в Xcb при запуске на любой графике.
>> Вот это и странно.
> Не вижу ничего странного. Прозрачность чего-то там в вулкане не имеет отношения
> к прозрачности окна же?Вот что пишет спецификация про то чему задаётся VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR:
compositeAlpha is a VkCompositeAlphaFlagBitsKHR value indicating the alpha compositing mode
to use when this surface is composited together with other surfaces on certain window systems.
https://www.khronos.org/registry/vulkan/specs/1.2-extensions...То есть как раз "указывает режим альфа-композиции с другими поверхностями в оконной системе".
> Окнам с дырками в иксах сто лет
> в обед, а полупрозрачные окна появились с первыми композиторами, задолго до
> этих ваших вулканов. Если финальное окно имеет альфа канал, композитор это
> рендерит.. какое этому всему дело до того, что там в вулкане
> поддерживается?Ну вот как-то так и выходит, что композитор X-сервера берёт кадр из памяти Nvidia и копирует его в экранный буфер Intel-а, отсюда и самодеятельность с прозрачностью (у Intel-а как раз отсутствует режим непрозрачности, только два варианта альфы) и в логе за счёт этого есть "Вывод изображения: да.". А в Wayland этого нет, поскольку должен реализовать клиент. А как определить, что Nvidia не поддерживает непосредственно вывод изображения, если как раз при проверке и падает, не понятно. По-моему, должен быть какой-то адекватный способ без ловли SIGSEGV.
> Вот что пишет спецификация про то чему задаётся VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR:
> compositeAlpha is a VkCompositeAlphaFlagBitsKHR value indicating the alpha compositing
> mode
> to use when this surface is composited together with other surfaces on
> certain window systems.
> https://www.khronos.org/registry/vulkan/specs/1.2-extensions...Так нвидия его поддерживает.
GPU id : 1 (GeForce GTX 1050 Ti with Max-Q Design):
Surface types: count = 2
VK_KHR_xcb_surface
VK_KHR_xlib_surface
Formats: count = 2
SurfaceFormat[0]:
format = FORMAT_B8G8R8A8_UNORM
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
SurfaceFormat[1]:
format = FORMAT_B8G8R8A8_SRGB
colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
Present Modes: count = 3
PRESENT_MODE_FIFO_KHR
PRESENT_MODE_FIFO_RELAXED_KHR
PRESENT_MODE_IMMEDIATE_KHR
VkSurfaceCapabilitiesKHR:
-------------------------
minImageCount = 2
maxImageCount = 8
currentExtent:
width = 256
height = 256
minImageExtent:
width = 256
height = 256
maxImageExtent:
width = 256
height = 256
maxImageArrayLayers = 1
supportedTransforms: count = 1
SURFACE_TRANSFORM_IDENTITY_BIT_KHR
currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
supportedCompositeAlpha: count = 1
COMPOSITE_ALPHA_OPAQUE_BIT_KHR
Intel поддерживает два:
supportedCompositeAlpha: count = 2
COMPOSITE_ALPHA_OPAQUE_BIT_KHR
COMPOSITE_ALPHA_INHERIT_BIT_KHRНо COMPOSITE_ALPHA_OPAQUE_BIT_KHR есть в обоих. А этот второй режим на фиг нужен..
> Ну вот как-то так и выходит, что композитор X-сервера берёт кадр из
> памяти Nvidia и копирует его в экранный буфер Intel-а, отсюда и
> самодеятельность с прозрачностью (у Intel-а как раз отсутствует режим непрозрачности,
> только два варианта альфы) и в логе за счёт этого есть
> "Вывод изображения: да.". А в Wayland этого нет, поскольку должен реализовать
> клиент. А как определить, что Nvidia не поддерживает непосредственно вывод изображения,
> если как раз при проверке и падает, не понятно. По-моему, должен
> быть какой-то адекватный способ без ловли SIGSEGV.На самом деле, я нашел почему падает под wayland все связанное с vulkan на nvidia. Вот эта проблема: https://wiki.archlinux.org/index.php/Vulkan#Nvidia_-_vulkan_...
Если запускаю weston как __GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json weston&
то vulkaninfo и тп перестают падать и нормально работают. Но intel не показывают. Т.е. баг не в чисто в том, как работает vulkan в nvidia; баг в переключении ICD или одновременной попытке их подгрузить оба. foxhunt, правда, это не помогает, но это уже дело десятое. Как минимум я теперь знаю, что связка wayland+vulkan на нвидии рабочая! ( кстати тут еще 4 года назад писали, что под чистым wayland все работает https://www.nvidia.com/en-us/geforce/forums/discover/249236/...-/ )
>> Вот что пишет спецификация про то чему задаётся VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR:
>> compositeAlpha is a VkCompositeAlphaFlagBitsKHR value indicating the alpha compositing
>> mode
>> to use when this surface is composited together with other surfaces on
>> certain window systems.
>> https://www.khronos.org/registry/vulkan/specs/1.2-extensions...
> Так нвидия его поддерживает....
> COMPOSITE_ALPHA_OPAQUE_BIT_KHRДело в том, что это как раз режим непрозрачного отображения (OPAQUE), когда альфа-канал игнорируется (считается равным 1.0)
> Intel поддерживает два:
> supportedCompositeAlpha: count = 2
>
> COMPOSITE_ALPHA_OPAQUE_BIT_KHR
> COMPOSITE_ALPHA_INHERIT_BIT_KHR
> Но COMPOSITE_ALPHA_OPAQUE_BIT_KHR есть в обоих. А этот второй режим на фиг нужен..В Воланде (для VK_KHR_wayland_surface) другие режимы. COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR - вот это режим с предвычисленным значением альфы. https://www.khronos.org/registry/vulkan/specs/1.2-extensions...
Вот здесь у Вас https://www.opennet.ru/openforum/vsluhforumID3/121943.html#137
Поддерживаются наложения: 0xa -- это как раз COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR | COMPOSITE_ALPHA_INHERIT_BIT_KHR
>[оверквотинг удален]
>> если как раз при проверке и падает, не понятно. По-моему, должен
>> быть какой-то адекватный способ без ловли SIGSEGV.
> На самом деле, я нашел почему падает под wayland все связанное с
> vulkan на nvidia. Вот эта проблема: https://wiki.archlinux.org/index.php/Vulkan#Nvidia_-_vulkan_...
> Если запускаю weston как __GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1
> VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/nvidia_icd.json weston&
> то vulkaninfo и тп перестают падать и нормально работают. Но intel не
> показывают. Т.е. баг не в чисто в том, как работает vulkan
> в nvidia; баг в переключении ICD или одновременной попытке их подгрузить
> оба. foxhunt, правда, это не помогает, но это уже дело десятое.Её поможет, когда я соберу стенд для обкатки этого дела.
> Как минимум я теперь знаю, что связка wayland+vulkan на нвидии рабочая!
> ( кстати тут еще 4 года назад писали, что под чистым
> wayland все работает https://www.nvidia.com/en-us/geforce/forums/discover/249236/...-/
> )Это там одинокая Nvidia? У меня был ноут с Optimus, там пришлось пропатчить BIOS, что бы появился пункт "отключать Intel", иначе хватало проблем. С тех пор, конечно, много что исправили.
> Дело в том, что это как раз режим непрозрачного отображения (OPAQUE), когда альфа-канал игнорируется (считается равным 1.0)Ясно. Ну, значит.. вот так. Заявлено что игнорируется, по факту работает.
У меня интел основной картой, видимо композитор на нем работает, копируя то, что там нвидия рендерит. Но я не знаю, это влияет или нет. Отключать интел в биосе можно, но что-то не хочется таких экспериментов (все ж таки иксы и прочее бегают на интеле). Второго моника сейчас для проверки нет :-(> С тех пор, конечно, много что исправили.
Да. Где-то с годик как PRIME/reverse PRIME работают из коробки и без костылей. И карта спит нормально, пока кто-не явно начнет использовать. Когда полтора года назад брал ноут, с этим была проблема - грелся даже при работе на интеле. Но сейчас ок.
>> Дело в том, что это как раз режим непрозрачного отображения (OPAQUE), когда альфа-канал игнорируется (считается равным 1.0)
> Ясно. Ну, значит.. вот так. Заявлено что игнорируется, по факту работает.
> У меня интел основной картой, видимо композитор на нем работает, копируя то,
> что там нвидия рендерит. Но я не знаю, это влияет или
> нет.Ну вот под Иксами кто-то копирует, а в Воланде функция могла бы вернуть "презентация не поддерживается", но вместо этого падает.
> Отключать интел в биосе можно, но что-то не хочется таких
> экспериментов (все ж таки иксы и прочее бегают на интеле). Второго
> моника сейчас для проверки нет :-(Это может понадобиться, если интересна какая-то ресурсоёмкая игрушка и она подтормаживает, но скорее всего выигрыш по скорости окажется незаметен. Иксы на Нвидиа вряд ли стоит гонять, только АКБ быстрее садит и греется. И для foxhunt нет смысла, тут именно из-за двух видеокарт проблема.
> Это может понадобиться, если интересна какая-то ресурсоёмкая игрушка и она подтормаживает,
> но скорее всего выигрыш по скорости окажется незаметен. Иксы на НвидиаВнутренний дисплей все равно на интеле и все равно копировать надо :) Даже если выключить нвидию. Точно так же внешние порты на нвидии, если рендерить на интеле - копирование происходит..
В моём случае Интел отключался вообще, устройство исчезало с шины PCI. Вывод на дисплей, по-видимому, коммутируется.
> А надо под рут??Нет, не надо. Они там запускают без композитора, судя по всему (один точно).
В master-ветке добавил поддержку X11, если ещё интересно. Платформа для вывода графики задаётся при сборке (или скриптом можно собрать все). Готовый исполняемый файл выложу чуть позже, как проверю где-то помимо Гнома.
> Wayland не инициализируется.Т.е. игра гвоздями прибита к Вейланду? Ну ок... У меня есть какие-то вейланд-либы (ldd показывает, что всё ок), но на Вейланд переходить я в ближашие лет 5-10 не собирался. Пусть пони сначала протестируют.
Про Wayland написано в новости. Она не прибита, просто никаких посторонних библиотек не использует. Вариант с X11 пока не реализован. На днях я понял, почему авторы mpv не очень любят Gnome, и теперь надо немного передохнуть.
https://github.com/STrusov/foxhunt/releases/tag/v0.20
Добавлена поддержка X11 (foxhunt_xcb, немного не дотягивает до Wayland).
А ихнишний Линукс портировать на тотошний микрокалькулятор МК-61 они не будут?
Вот это новость. Линукс-новость.
Может, ИРЛ как-нить поиграем? Только надо оборудование раздобыть )
> оборудованиестрайкбольное, чтоб лиса лучше пряталась.
А ей-то зачем лучше прятаться? Сигналить будет им же, ещё вопрос, кому закапываться :]
Есть рабочий МК-61с оригинальной советской упаковкой и инструкцией. Отдам по цене PS5 со скидкой в $5.
> PS5-$5₽?
> Wayland и API Vulkan
> эмулятор процессора AY-3-8912Что это было? Зачем? Игра уровня kdetoys с куском эмулятора и на vulkan... Ну хорошо хоть ray-tracing не требуется и эмуляции "бордюра" нет.
ИМХО, для таких "тетрисов" проще брать GTK/Qt. Ну или тогда обеспечьте запуск в консоли (на egl, например), чтобы без всяких графических серверов работало.
> Игра уровня kdetoys с куском эмулятора и на vulkan...Угу, в отличие от тех toys не требующая гигабайты места на жёстком диске под зависимости и сотен мегов под рантайм.
> ИМХО, для таких "тетрисов" проще брать GTK/Qt.
gtk/qt -- это наслоения толстенных слоёв абстракции над видеокартой, в то время как Vulkan -- это один слой абстракции, который в худшем случае не толще чем любой из тех, что навалены в gtk/qt.
Хотя, конечно, чем толще слои абстракций тем проще, как правило. Но если дело в простоте, то надо было писать на js под браузер.
> обеспечьте запуск в консоли (на egl, например), чтобы без всяких графических серверов работало.
О кто-то зажрался: "обеспечьте"! Кто ты такой, чтобы указывать автору, что ему делать с его поделкой?
> О кто-то зажрался: "обеспечьте"! Кто ты такой, чтобы указывать автору, что ему делать с его поделкой?Нет, там смысл был другой изначально. Я просто пару вводных предложений удалил :)
Ну тесселяцию и бамп маппинг стоило бы приделать конечно, как минимум. Вот идея отказаться от glx в пользу egl, и более того вообще забить на 99,9999999% пользователей выглядит действительно странно. И на самом деле не gtk, а sdl2 тут за глаза -- все игры используют именно её.
> Вот идея отказаться от glx в пользу egl,EGL тут нет, оно "уже украдено до нас" https://jan.newmarch.name/Wayland/EGL
> sdl2 тут за глаза -- все игры используют именно её.
Это формат 64К, сторонние библиотеки по условиям задачи не применяются.
>> Wayland и API Vulkan
>> эмулятор процессора AY-3-8912
> Что это было?Музыкальный процессор AY-8912/8910
Характеристики
1. Программное управление генератором.
2. Три программнонезависимых аналоговых выхода.
...
https://speccy.info/AY-3-8910> Зачем?
Для воспроизведения музыки, которая была написана специально для Spectrum-версии этой игры.
Поздравляю с релизом.
Не, это не так работает.Прежде всего, кто-то из ООО "НТЦ ИТ РОСА" (должен же среди ажно 8-ми сотрудников быть хоть один вменяемый?) приносит вашим бесплатным тестеровщикам извинения за поведения г-на Потапова, когда тот прилюдно учил меня исходить из правила "никогда не делай ничего для людей, люди - неблагодарные свиньи".
Потом вы что-то делаете с клеветой малахольного сотрудника Григорьева, якобы я "комп Ивану сломал" (напоминаю, лично ты причастен к исходному набросу того Ивана, когда причиной на деле оказались ручки Бондрова, слинковавшего kodi с несовместимой версией ffmpeg).
Это тот минимум, после которого твои попытки сохранить красивую мину при плохой игре не будут работать против тебя.
У меня был МК-61. Но книжка была только по МК-54. Там "Посадка на луну", "Чёт-нечёт", и так далее.
Наконец-то про посадку на Луну на микрокалькуляторе вспомнили! Думал, что никто и не вспомнит уж! :-)
Какая-то вариация сапёра. Ну в те годы это был геймплей.
Лисы - куда сложнее, ты видишь не только рядом, а вдоль рядов/столбцов/диагоналей.
Как линукс игра, так класическая окаменелость
>> для калькуляторов типа МК-61 была опубликована в 12 номере журнала «Наука и Жизнь» за 1985 год
> Как линукс игра, так
>> 1985 год
> линуксТы не поверишь ...
На скриншоте какая-то сеточка графически недалеко ушедшая от сапера или текстовых квестов, зато "Проект написан на языке Си с использованием Wayland и API Vulkan.". Не, я все понимаю, но забыли только RTX прикрутить в качестве обязательных требований, чтобы только на топовых Невидиях работало.
2048 in pure bash уже написана https://board.flatassembler.net/topic.php?t=21437Думаю, желающие смогут её адаптировать под правила "Охоты".
А кто-нибудь играл в Кунг-фу Мастер?
я автор версии для Науки и жизнь от 10 1990 . jura12 . ru / node / 10
У меня есть 2-9, 11.
А 10, к сожалению, скорее всего нет.
Сорри, спутал с "Радио".
> я автор версии для Науки и жизнь от 10 1990 . jura12
> . ru / node / 10Спасибо. Именно в Вашу версию https://www.jura12.ru/sites/default/files/2020-08/IMG_202008...
выходит, я и играл в своё время на тетрадном листочке.
та версия от 12 1085 для калькулятора Б3-34