• 0 Posts
  • 17 Comments
Joined 2 years ago
cake
Cake day: June 5th, 2023

help-circle
  • There’s some wrong things in this article, and a thing worth mentioning.

    Half-Life (and its mods like Counter-Strike) had Linux server versions, and a lot of dedicated servers ran on Linux, which I think is worth mentioning when talking about the history.

    Steam wasn’t well received at first, people didn’t like that there was now this special launcher/downloader you had to use. Mind you they moved their old games onto Steam, so it’s not like you knew about this when you bought it. Also there weren’t any games on there except Half-Life and related titles, like HL mods that got their own release.

    Contrary to what the article claims, MacOS does not support some outdated version of DirectX, it does not and never has supported DirectX at all. DirectX was only ever supported on Windows and XBox.

    DirectX also was not well received at first. Here’s an old article from gamedev.net (2002):

    What later became known as DirectX 1.0 ended up not being very widely accepted. It was buggy, slow, badly structured, and overly complex.

    Of course, Microsoft wasn’t about to just give up. They kept working at it, asking the community for ways to improve it. The first truly viable version of DirectX was DirectX 3.0. A few years later, they released DirectX 5 (skipping 4 entirely), which was the first truly useful version. Incremental improvements were made with version 6. Then came DirectX 7.0.

    DirectX 7 was the first one to actually be embraced by game developers. It worked well, making game programming reasonably easy, and a lot of people liked the interface.

    Here's a bunch of things John Carmack had to say about DirectX over the years:

    First, a rant by John Carmack from 1996:

    I have been using OpenGL for about six months now, and I have been very impressed by the design of the API, and especially it’s ease of use. A month ago, I ported quake to OpenGL. It was an extremely pleasant experience. It didn’t take long, the code was clean and simple, and it gave me a great testbed to rapidly try out new research ideas.

    I started porting glquake to Direct-3D IM with the intent of learning the api and doing a fair comparison.

    Well, I have learned enough about it. I’m not going to finish the port. I have better things to do with my time.

    John Carmack revised his opinion later. Here he is posting in 2001 about DirectX 8:

    D3D is clunky, etc

    Not really true anymore. MS made large strides with each release, and DX8 can’t be called a lousy API anymore. One can argue various points, but they are minor points. Anti-Microsoft forces have a bad habit of focusing on early problems, and not tracking the improvements that have been made in current versions. My rant of five years ago doesn’t apply to the world of today.

    But:

    All of Nvidia’s new features have showed up as OpenGL extensions before they show up as new D3D features.

    By 2011 he thought Direct3D was better than OpenGL.



  • Since you say the thing is working fine on Windows, there’s almost certainly a bug or several. I’d say probably a driver in the kernel, but could be something else. Changing distro or kernel version does sometimes help with that sort of thing, mainly because another distro may have newer or older kernels and other software, and bugs get both introduced and fixed every release.

    Freezing issues can have lots reasons, including buggy apps, RAM exhaustion due to memory leaks, bugs in the graphics drivers or graphics stack more generally, various blocking I/O things taking unexpectedly long due to network issues or faulty hardware or drivers.

    If you want a chance to figure this out, you probably need to run things in the terminal, like installing software updates through the apt and snap (?) cli utilities. GUIs are notoriously shit at reporting unexpected errors, whereas all sorts of programs (including GUI apps if you start them in a terminal) do regularly print warnings and error messages to stderr, which will show up in a terminal. This is because it’s easy for the programmers to do that with just single printf() (etc.) line.

    For driver issues, looking at the kernel logs can sometimes show interesting things as well. I will say that, when looking at logs or terminal output, there often are warnings that are completely unrelated and/or harmless, and that’s not necessarily obvious to the user.

    If this is a software issue, framework imho shouldn’t advertise their stuff being able to run Ubuntu if they cannot stay on top of issues that are happening in this configuration.





  • Yeah I wrote that stop command wrong, it’s supposed to be systemctl --user stop pulseaudio. The relevant errors from journalctl were the “busy” errors. Are they still there? Maybe they’re old messages? You can type G to go to the end of the log.

    Also, and this is probably my last suggestion, try restarting the socket with systemctl --user restart pipewire-pulse.socket. And maybe restart all the other crap as well for good measure. My theory here is that pulseaudio overwrote that socket with it’s own socket, and anything trying to play sound would be trying to connect to the nonexistent pulseaudio, and maybe restarting pipewire doesn’t actually recreate the socket, because systemd does that, but I’m not sure that’s actually how that works.

    Theoretically logging out and in again should also restart all the things pipewire I think, but it’s possible that whatever is slowing down your boot is actually slowing down the login, so do at your own risk.







  • I mean something must have changed three days ago, kernel update maybe? You could try running a different kernel and see if this fixes it automagically.

    I recently also had an issue where I could only see a dummy device, and that got me wondering. It was caused by fluidsynth hogging the audio device. So maybe could you check something? Look at the log file for pipewire (journalctl --user -u pipewire here) and do fuser -fv /dev/snd/* when it’s still in its broken state to see if (maybe) you’re misdiagnosing the problem. Because I could possibly sort of imagine that doing the force-reload and start pulseaudio dance might actually have seemingly fixed my fluidsynth issue by inadvertently making it so that pulseaudio got a hold of the audio device.


  • I had an issue like this recently on Debian testing and it turns out fluidsynth was hogging the sound device and so pipewire couldn’t open it. IDK why it was doing that all of a sudden. The symptom was also just having the dummy device.

    I think what I did to figure this out was look at the pipewire logs and it said something to the effect that it couldn’t open the sound device because it was busy, and according to my bash history I did fuser -fv /dev/snd/* and figured out it was fluidsynth that was using it, which I then disabled or maybe uninstalled because wtf do I need midi for anyway.

    Your problem may be different, but I can imagine, theoretically, that all the stuff you’re doing makes it so pulseaudio gets first dibs on the (otherwise busy) sound device and so maybe you have misdiagnosed the problem.