May 15 14:08
А, и правда. Согласен. Есть еще вариант взять нестандартный 128-битный тип.
May 15 14:08
Зачем строки, если можно отдельно прочитать знак и отдельно unsigned long long.
 
Feb 9 12:42
@Acccumulation The difference is that you can show me how to start a flame. If you can show me how to mix some inorganic chemicals in a beaker and create life this way, that would be "overwhelming evidence", yes. Just pointing to existence of life is a proof that it has started or was created somehow, but doesn't favor any specific explanation.
Feb 9 12:42
@ShadowRanger "They're not agnostic on all deities" Not giving equal weight to all religions isn't inherently wrong, it can be a Bayesian approach (e.g. if you postulate that having more followers increases the chance of it being true, or some other criteria). But I agree that the more arbitrary a religion is (Abrahamic personal God), the less likely it to be true. But it's besides the point I expressed in my previous comemnt.
Feb 9 12:42
@Acccumulation Not equal symmetry of course. What I'm saying that if you haven't heard of god/religion before and someone suggests this idea to you, your initial state with respect to this idea (or any idea) is "I don't know if it's true or false", not "I believe it's true/false". You might transition to the latter quickly, but the initial state ("default" as I called it) is always not knowing or not having an opinion.
Feb 9 12:42
The default position is (or should be) agnosticism, not atheism. Theism and atheism are somewhat symmetric relative to agnosticism.
 
Jan 30 06:47
@Jeremy xrandr --output HDMI-0 --off gave an error. xset dpms force off then on had no effect.
Jan 29 15:33
@Jeremy I will try the command next time it happens.

How would reproducing it while unplugged help?
Jan 29 15:11
@Jeremy I believe unplugging and plugging back the second monitor has the same effect. I'll try xrandr the next time it happens, but it's unlikely to work.
Jan 29 14:59
@Jeremy What exactly do you mean by "restarting the display"? How do I do that? As mentioned in the question I tried unplugging and plugging back the second monitor, that didn't help (the second monitor activated but still with a black screen).
Jan 29 14:32
@Jeremy I don't have `/etc/X11/xorg.conf`. In `/etc/X11/xorg.conf.d/`the only thing is a harmless keyboard layout configuration (that was generated automatically by the keyboard settings UI).

I use lightdm instead of gdm. I might try to switch one day, but I like what I have, and it used to work fine.

Regarding interaction - as briefly mentioned in the question, the cursor shape gets updated properly on hover, as if my apps were still open. But once i click anywhere, the cursor shape gets stuck, so I can't tell if my click was registered or not.
Jan 29 14:16
@Jeremy I tagged arch-linux.
Jan 29 14:13
@Jeremy As I mentioned in the question, I'm using the official drivers, not noveau (though it could be installed). lspci -v | sed '1,/VGA/d;/^$/,$d' says Kernel driver in use: nvidia. (This is opensource nvidia drivers, which are apparently preferred now, but I believe I had the same issue with the old closedsource drivers.)
Jan 29 14:13
@Jeremy With what logs?? Again, I already provided all logs I have. And I got those immediately after the issue happened (by switching to a different virtual console and backing them up), so there is no junk at the end to filter.
Jan 29 14:13
@Jeremy The logs were collected immediately after the issue happened, so just look at the very end. It was working until about 21:15 local time when I locked the screen and left the PC alone for an ~hour, and when I come back and unlocked it, I was met with the black screen. Shouldn't be too hard to find the locking moment in the logs.
Jan 29 14:13
@Jeremy Where do I find it? Quick googling shows XFCE doesn't have a centralized log, and I didn't find anything xfce-specific in /var/log.
Jan 29 14:13
@Jeremy I've added all the logs I could find to the question.
Jan 29 14:13
@Jeremy What another driver? The closed-source driver had the same issue (as mentioned in the post), and noveau is slow IIRC. I'll get the logs the next time it happens.
 
Aug 2, 2024 08:50
@evo Там даже проект для VS приложен, так что собрать на винде можно. Но видимо сам мейкфайл рассчитан только на линукс.
Aug 2, 2024 07:27
Ну а вот теперь надо начинать думать. al.h - это библиотека OpenAL, ставится через pacman -S mingw-w64-x86_64-openal. Там нужна еще пара библиотек, но даже со всеми ними - не компилируется, нужно сидеть и разбираться.
Aug 2, 2024 07:27
Ага, ясно. Почитайте What are MSYS2 environments? How do I pick one?. Если хотите использовать MINGW64, нужно установить pacman -S mingw-w64-x86_64-gcc. Предложенный по ссылке mingw-w64-ucrt-x86_64-gcc - для UCRT64. Странно, что make не выдал никаких ошибок на это.
Aug 2, 2024 07:27
Эммммм. Это вы где сейчас which g++ написали? Нужно было в том же терминале msys2, в котором вы все компилируете.
Aug 2, 2024 07:27
Еще просьба, добавляйте @username к комментариям, чтобы нам приходили уведомления.
Aug 2, 2024 07:27
По ссылке ставят UCRT64, не MINGW64. Добавьте информацию, которую я попросил в предыдущем комменте (which g++ и дальше).
Aug 2, 2024 07:27
Попробовал. Оно пытается скомпилироваться, но валится с ошибками. Надо сидеть и патчить, чтобы добиться совместимости с mingw.
Aug 2, 2024 07:27
У вас лог выводится мгновенно, или медленно? Если мгновенно, то возможно как-то криво поставили GCC, и он даже не запускается? Скажите что выводит which g++, и скажите, какой текст выводится пурпурным цветом в терминале msys2 (MSYS, MINGW64, UCRT64, еще что-то?).
Aug 2, 2024 07:27
Если еще раз запустить то же самое, что происходит?
Aug 2, 2024 07:27
"make main -f Makefile выдаёт это" Выглядит как успешная компиляция.
 
Jun 7, 2024 17:51
Ну вот, держите полный - pastebin.com/K44VYfp6 - все как я написал в предыдущем комменте, только смещение у разных объектов сделал разное, чтобы были разные скорости. "на комментарии таких участников как вы отвечать не нужно" Вам помогают, а вы ругаетесь. Я вроде нигде не грубил? Непонятно.
Jun 7, 2024 17:51
Собрал, проверил, все прекрасно работает. Код ровно как в вопросе, но добавил window.setVerticalSyncEnabled(true); window.setFramerateLimit(60); и убрал if-ы (их тела оставил). Две точки медленно ползут по экрану. Если у вас не работает, покажите новый код, который у вас получился, и скажите, что вы видите.
Jun 7, 2024 17:51
"не рекомендуются использовать вместе" Сходу в мануале не нашел, но если правда так, оставьте только второй. "доты должны быть не зависимы друг от друга" Обновлять координаты каждого объекта каждый кадр - это нормально. Вы пытаетесь придумать какой-то хитрый способ делать по-другому, но как я уже в первом комменте написал, это - нормальный и единственный способ. "Отправьте мне ваш код" Я не понимаю, почему вы настаиваете на полном коде, я же объяснил, что где нужно поменять. И не понимаю, почему настаиваете именно на ответе.
Jun 7, 2024 17:51
Вместо того, чтобы объяснять мне, почему это не сработает, просто попробуйте и посмотрите на результат.
Jun 7, 2024 17:51
"какое значения стоит на FramerateLimit" Скорее всего по умолчанию без ограничения. Ваш метод работает, просто очень медленно - первый спрайт сдвигается на пиксель каждые 150 кадров, т.е. больше двух секунд. Попробуйте без ifа звать dotSprite_1.setPosition(dotSprite_1.getPosition().x + 1, 100); каждый кадр, это уже будет заметно. Чтобы делать разную скорость для разных спрайтой, или ставьте разные числа вместо +1, или двигайте не каждый кадр. "написали в виде ответа" Мне кажется сейчас и без ответа станет понятно.
Jun 7, 2024 17:51
Ничего не понял. Вот вы зовете window.display(); - скорее всего в нем SFML добавит задержку, чтобы выдать столько кадров в секунду сколько вы ему сказали.
Jun 7, 2024 17:51
Гугл советует window.setVerticalSyncEnabled(true); window.setFramerateLimit(60);.
Jun 7, 2024 17:51
Не нужны ни sleep, ни многопоточность. Наоборот, как сейчас - правильно. Главное только убедиться, что код выполняется фиксированное количество раз в секунду, независимо от мощности компьютера. (Vsync включить, например, если он по дефолту уже не включен - надо проверить мануал на SFML).
 
Apr 28, 2024 14:06
@InterceptorTSK "а тут про v8 инструкции какие то" - Обясню ход мыслей. Не уверен на 100% что прав, но тем не менее:
* На х86 нет `std::memory_order_relaxed` (он тихо заменяется на acquire/release).
* На x86 обычные не-атомарные операции на уровне инструкций эквивалентны acquire/release атомикам (разница только в оптимизации компилятора может быть) - https://gcc.godbolt.org/z/j7s8TErcM
* На арме вроде как барьер медленнее чем acquire/release (https://stackoverflow.com/a/73028656/2752075)
Поэтому все выглядит логично:
Apr 28, 2024 13:39
@InterceptorTSK Мне гугл подсказывает, что в ARMv8 завезли acquire-store/release-load инструкции, может это их вам не хватало? А может лишние барьеры какие-то поставили? Тема-то интересная, но без кода и без бенчмарков особо не поговоришь.
Apr 28, 2024 13:39
@InterceptorTSK Так я ж написал, что volatile не для многопоточки; для многопоточки - атомики. Поделитесь, что у вас за опыт был с многопоточкой и армами?
Apr 28, 2024 13:39
@InterceptorTSK Я не железячник, допускаю что чего-то не знаю. И что, как на ARMе живут с такими перестановками? Наивно кажется, что перестановки на уровне конвеера не должны влиять на поведение программы.
 
Apr 22, 2024 15:41
@user589936 Странный вопрос. Ну, удалите лишние файлы из проекта. Или создайте новый проект с одним этим файлом.
Apr 22, 2024 15:38
Я не понял, а что с предыдущей ошибкой? Как это связано с тем, про что мы говорим? Если это другое, может вам отдельный вопрос задать?
Apr 22, 2024 15:38
Покажите скриншот папки и скриншот ошибки.
Apr 22, 2024 15:38
Предупреждение - неважно. Я уже сказал, что делать - скопировать .dll.
Apr 22, 2024 15:38
Что значит "прописан путь в отладке"? Нужно скопировать рядом с экзешником.
Apr 22, 2024 15:38
А какая именно dll - написано? Ее нужно найти и положить рядом с экзешником (найти не в гугле, а желательно там же, где ее нашла сама VS).
Apr 22, 2024 15:38
.exe = экзешник = исполняемый файл. Что значит не получается запустить, какая-то ошибка вылезает? Если ничего не вылезает и просто тишина, попробуйте дабл-кликнуть его в проводнике - иногда это показывает нормальную ошибку.
Apr 22, 2024 15:38
Ага, можно. А в чем проблема-то? Если цель - получить экзешник, то он у вас уже где-то лежит в папке с проектом, после запуска кода в VS. (Другое дело, что MSVC - не лучший компилятор, имхо, но выбирать между ними нужно осознанно.)
Apr 22, 2024 15:38
VS тоже компилирует в .exe перед запуском, но другим компилятором - MSVC. Вы специально с MSVC на GCC пересели (компилятор не нравится), или просто по незнанию, что первый тоже может сделать экзешник?