Yet another way to get a tear-free, stutter-free desktop with Plasma/KDE and Nvidia

So the proprietary Nvidia driver is a large, steaming, smelly pile of shit. At least that’s the impression you get when you read what developers say about it. There’s a bug here and a workaround there, and we haven’t even started talking about the messy situation that is EGLstreams yet. So why do people use Nvidia cards on Linux? Because so far, they give good bang for the buck, use relatively little energy for what they do and work with all commercial games. I’m pretty sure those are the reasons, anyway.

But Nvidia at least on Plasma/KDE has some serious problems with tearing and stutter — I have three Nvidia setups and they all are unsatisfying out of the box. If you use ForceCompositionPipeline like I recommended earlier, you will probably run into stutter issues. But I think I found the perfect setup now, stutter-free and tearing-free for desktop use as well as perfect for gaming.

There are two alternatives:

Method 1: Solve it by switching the GL yield mechanism to USLEEP

Add the following to ~/.config/plasma-workspace/env/kwin.sh:

#!/bin/sh
export __GL_YIELD="usleep"

Thank mahenou on Steam for suggesting I try this again. The first time I did, it was probably too late in the environment for Kwin to pick it up. It’s important that the var is set when Kwin initializes.

Method 2: Solve it by forcing triple buffering

Add the following to ~/.config/plasma-workspace/env/kwin.sh:

#!/bin/sh
export KWIN_TRIPLE_BUFFER=1 

And chmod +x the file. Then add the following to an Xorg config snippet, for example /etc/X11/xorg.conf.d/20-nvidia.conf:

Section "Device"
        Identifier      "Videocard0"
        Driver          "nvidia"
        Option          "TripleBuffer" "true"
EndSection

Finally, enable compositing and vsync

Then make sure you have compositing enabled in System Settings -> Display and Monitor -> Compositor. If you are very doubtful, do a restart. After that you should have a perfect, tear-free and stutter-free desktop experience. I had to disable compositing manually with Alt-Shift-F12 before starting games with the triple buffering method. This was unnecessary with the __GL_YIELD method.

I can’t truthfully explain why this works, but I know it works around a bunch of bugs and unexpected default settings in the Nvidia driver. Also, Kwin is now able to compute the right timings and handle triple buffering instead of rendering half-finished frames like a fucking moron when it still believed Nvidia was doing triple buffering by default.

For me this has been wonderful. The desktop is smooth as if I were using a proper graphics card like an AMD RX 580 with Mesa. Games run exceedingly well, and there is no stutter or delay like with ForceCompositionPipeline. Not even in videos. It’s all just perfect.

This is a mix of hints received from several people on Reddit and Steam that I unfortunately forgot the names of, as well as info from the Arch Linux wiki. I’d like to thank all these people for their knowledge.

Working around broken firmware for Realtek USB WLAN adapters on newer kernels

If you run a combination of newer (4.9ish) kernels and systemd, your USB wifi networking gear probably now gets funky names such as “wlx74da387e95fe” instead of “wlan0” like you were used to back in the good days. This wouldn’t be so bad, only that the firmware on those dongles can mess up when the device gets a long name. Suddenly it won’t let you connect to your wireless network, claiming that the network does not exist, even though you know for a fact that it does. What your machine is actually trying to say, I believe, is that the network device doesn’t seem to exist.

If you have those symptoms, this answer by Maciek on Stackexchange will probably help. I encountered the problem while using one of the Edimax USB wifi dongles that are popular on the Raspberry Pi.

I had to add this to /etc/udev/rules.d/70-persistent-net.rules:

# edimax USB stick
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="ba:ba:ba:ba:ba:ba", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan", NAME="wlan1"

Substitute your own dongle’s MAC address for ba:ba:ba:ba:ba:ba and things should work. Of course make sure wlan1 isn’t taken already. If everything turns out well, your dongle now has a sane name again and connecting should just work.

Using Xbox 360-compatible controllers properly inside WINE

Update: There are now easier ways to manage this, for example through Lutris. If you manage your WINEs in Lutris, you simply have a checkbox whether to include dumbxinputemu or not.

If you need to use WINE to play some Windows games, the lack of Xinput support might get on your nerves. WINE maps joystick devices to Dinput. That works for some older games, but buttons need to be mapped manually, and many newer games don’t detect the controllers at all because they expect Xinput.

I tried to get by this issue using x360ce, but this is a fickle beast already when run natively on Windows; even more so in WINE. What worked really well for me was dumbxinputemu. Sometimes dumb things are the best.

To use it, determine if you’re running a 64-bit or a 32-bit game, then copy at least the matching xinput1_3.dll from the latest release to the same directory as the game’s binaries. In the case of Steam, that’s probably somewhere inside Steam/steamapps/common. Then make sure your WINE is set to prefer the native version of the DLL via winecfg:

In the “New override for library” dropdown select “xinput1_3”, then “Edit…” that entry to set it to “native” only. If you have a very new game, you might need to do repeat all these steps for xinput9_1_0.dll. This worked surprisingly reliably for me, no more double-detection of joysticks, no more wrong labels for buttons inside games, no more fiddly x360ce that works sometimes but then mysteriously breaks. Everything behaves as it shoud. Thank you, kozec.

Some hints for coping with stress

I don’t want to bore you with my life story, but I had several years of stress that ended up manifesting themselves bodily in the form of nausea, rapid heart palpitations, erratic sleep and eating patterns, depression, permanent exhaustion, mood swings, memory loss, light hallucinations and very painful cramp-like symptoms in various body parts

It was so bad for some time that I couldn’t lie on my back anymore and had to sleep while sitting. How do I know that it was stress that caused this? I am only guessing, but I got rid of the stress, and now the symptoms are gone as well. Symptoms that I had for years and that no doctor could explain. So maybe here are some hints you could probably also get from anyone else with a similar backstory:

Continue reading “Some hints for coping with stress”

A game that needs a remake: inFamous 2

Oh, the PS3. A problematic console from the start, with its strange Cell processor and its status somewhere between home entertainment system and games console. I suspect it only succeeded because of Sony’s muscle at the time, having emerged from the last console wars as a winner.

Screenshot of inFamous 2 courtesy of Hooked Gamers

But this isn’t about the PS3, or only insofar as inFamous 2 is one of the titles that really, really taxes the system, and is a PS3 exclusive. Here’s inFamous 2 in a few paragraphs, maybe enough of them stick for you that you’ll give this game a chance:

The synopsis is this: You’re a freak who gets electricity-based superpowers, but now you can’t drive a car anymore and water kills you. Make sense so far? But you gotta save the world from the The Beast that approaches the Floridaesque or New Orleansy coastal city of New Marais.

Writing, characters, story

There is excellent writing (for an action game) with solid characterization and great voice work. The lead character, Cole, is interesting because the voice actor (Eric Ladin) does this gruff-sexy-action-hero type of gravely monotone, but he puts just the right amount of emotional nuance into it to make it interesting. The lines he gets are often surprisingly human. These people talk just like people! The game won’t bore you with ages of exposition, each dialog is just the minimal amount of information to move the story forward, delivered in short well-written bursts.

Graphics and sound

You’ll find breathtaking environments. Think Zelda: Breath of the Wild invented the scenic third-person game? Think again. inFamous 2 has beautiful vistas by the truckload. Particularly the skyboxes are astonishing — depending on the mood they want to create, they either look like something from a comic book or something from an apocalyptic classical painting.

This is one of the large non-boss enemies you’ll face

Lighting is carefully chosen in general, with the whole scene bathed in a bluish twilight here or a dark orange sunset glow there. The architecture also deserves to be mentioned. It’s as if the developers had worked with an architect and a city planner to lay out the areas. Wood shacks and half-collapsed brick houses in Flood Town, colonial redbrick and a huge cathedral in the main part of town, an industrial wasteland full of gas tanks, train tracks and repair warehouses in the, err, industrial part. It all looks believable and organic.

Textures deserve to be mentioned as well, as I haven’t seen many PS3 games with such varied and careful texture work. Bricks and rocks have a palpable rough feel to them, colors in the main part of town are chosen carefully to be muted so that the many neon signs and lights pop out. Scenes with water feel glistening and wet.

Gameplay

This sequel has much more accessible gameplay than inFamous 1. That alone sets it apart enough for me. You unlock superpowers at just the right rate, and you feel like a badass as you climb through the cityscape or grind on a powerline. There aren’t any of those annoying tutorial levels like in inFamous 1, so in case you’re worrying about that, worry not.

You’ll be facing hundreds of normal, smaller enemies that each use different tactics, and usually the AI is good enough to make things interesting. You rarely feel totally overpowered, so you can rarely just stop thinking. Sometimes the AI gets stuck in corners, especially if you are very far away, but that’s fine. Most of your powers don’t have enough range to hit then anyway, and when you move closer the AI wakes from its daze and joins the fight again.

The few battles with extremely large enemies are all the better for it. Usually you fight enemies roughly your size or twice that. But there are occasions where you need to take on much larger beasts. Those truly shine because they are the exception. You’ll remember these enemies and fights precisely because you didn’t get inundated with sixty bosses already.

The only major criticism I could lob at the game is the framerate. It’s uneven, staring at the sky might get you around 60 fps, but actually playing in the streets hovers around 25 to 30, and battles can go down to the low 20s. They did a fantastic job adapting the controls so that you can win the fights anyway, even when the framerate tanks. But it’s just not beautiful anymore in the age of rock-solid 60 fps like the Nintendo Switch delivers for many games. This game needs a remake. Anyone listening? Screw The Last of Us, inFamous 2 is a fantastic action romp and it needs to be 1080p60 for fuck’s sake.

Festival of Blood: Electric Vampires

If you haven’t had enough of inFamous 2, there is a standalone side-game in the form of inFamous: Festival of Blood that uses the same locations but that lets you be an electrified vampire during a Mardi Gras-ish festival, hunting Bloody Mary, a vampire that terrorizes town. Yes, the cocktail was named after her in this universe, not the other way round.

The writing is once again spot-on, especially Bloody Mary’s diary segments. They’re delivered in her lofty English sing-song and written in the style of Gothic horror novels, always with a fun twist at the end.

You can mingle with townsfolk, but some of them might be hidden vampires you need to stake

Technically the game isn’t different from inFamous 2, but the colors are all changed (much more red) and the atmosphere in the street is very different with hundreds of festivalgoers wearing neon glow-in-the-dark bracelets.

Gameplay is changed from the base inFamous 2 by the addition of vampire powers (vampire sense lets you see into people and whether they are hidden vampires, bat flight turns you into a flock of bat, biting people and sucking their blood refills your bat flight energy, etc.).

The only criticism here is that environments are reused quite often, with one section of catacombs underneath the cathedral serving as location for at least three quests. But this is forgivable.

Final thoughts

Oh, the PS3. It’s getting old now. This is an advantage for you, in case no remake is coming. If you don’t have a PS3, you can get one now for 50 bucks of whatever currency, and inFamous 2 in a digital sale often dips below 10 and includes Festival of Blood. Physical, you might be able to score a used copy for 5.

Also, if you have a beefy PC, keep an eye out for RPCS3. This PS3 emulator has been making great strides, and you can rip games yourself quite easily. It doesn’t really run the inFamous games yet, though. Maybe if RPCS3 becomes optimized enough, we won’t need a remake anymore. A very, very fast PC can potentially play this game at a solid 30 or 60 fps, as there is no frame limiter in the engine.

Here’s a full playthrough with major spoilers if you want to see what the game is like:

Rating: Electric Wizard/10.

Our terrible future of closed protocols and proprietary systems

TL;DR (1072 words): The current trend towards closed communications systems like Slack, Facebook and the like can only hurt us as society. An open standard needs to emerge. Who’s volunteering to support things like Matrix and the “new decentralized Internet”?

I’m trying to illustrate the newly closed nature of the Internet using team chat and team collaboration as an example. But you can expand this example to pretty much anything nowadays. Because the solution to combat this closed-ness applies equally to all of these issues, I hope you can extrapolate from this as necessary.

Continue reading “Our terrible future of closed protocols and proprietary systems”

Play The Saboteur instead of Wolfenstein II

If you enjoy Nazi-stomping you’ve probably heard of Wolfenstein II: The New Colossus. They did have a pretty funny marketing campaign, after all. Now according to the reviews I’ve seen so far, it’s a mixed bag. It’s the Doom engine meets the previous Wolfenstein’s setting. Something we’ve more or less seen before, just with better graphics. Not that terribly exciting on a conceptual level, is it?

This section of Paris will turn from black, white and red to color once you get rid of the Nazis

But there’s one game about taking out Nazis that is unique and was overlooked when it came out in 2009: The Saboteur. I’ll leave it to you to find in-depth reviews, but here are some of the things you can do:

Continue reading “Play The Saboteur instead of Wolfenstein II”

Google shutting down XMPP interoperability is a sad sign of the age of communication silos

Update: With XMPP slowly dying (at least IMHO), maybe you should consider Matrix instead of XMPP and ignore everything I write below.

Google just shut down the last piece of Google Talk, killing XMPP. This means that people using standards-based open and interoperable chat systems can no longer talk to their friends who use Google’s proprietary and closed chat system, Hangouts. For example, people who use Pidgin on any of the thousands of free and open XMPP servers in the world cannot message Google users anymore.

Instead of working towards standardization, making sure that all chat systems from all vendors can talk to each other, each large company now has their own communications silo. Skype is not compatible with Hangouts is not compatible with Apple FaceTime is not compatible with WeChat is not compatible with WhatsApp. Even though all these systems perform mostly the same function, have roughly the same features and could be built using open, mutually compatible standards. Could even be built from the same source code.

But Google, Microsoft and Facebook make more money by preventing you from talking to your friends on other systems. They want to analyze both parts of a conversation, they want to control the sender and the receiver and read all the content. This is harder to do when you have a standardized, federated system, and even harder in the case of XMPP where users can employ message encryption with just a few clicks. Encryption that is not controlled by Microsoft or Facebook but by the users themselves.

What can you do against this?

  • Geting an XMPP JID would be the first step. You can register for an account on any public XMPP server (sometimes called Jabber servers, but Jabber is now a closed product by Cisco, adding insult to injury, while the XMPP standard remains open).
  • Then get an XMPP client, for example Pidgin for the desktop and Conversations for Android. Set up your account and log in. People can now invite you to their XMPP contacts and you can start chatting.
  • If you want message encryption, make sure to enable OTR. There are many tutorials on this, I’ll just link to a random one I found.

What if you don’t do this? Then we’ll end up in a world with more communication silos, where people find it harder and harder to talk to each other, and huge multinational companies with bad privacy policies will control and record more of our communication. Because these closed platforms create inconvenience for anyone not inside those closed platforms, peer pressure will then pull everyone towards such closed platforms, until a dangerous oligopoly emerges. This latest move by Google is one more step in this direction.

I’ll leave you with a link to a relevant XKCD comic.

Google is trying to destroy the ad blocker market

Like I guessed about two years ago, Google are now trying to undermine the ad blocking market by releasing their own ad blocker, which will of course not block ads served by Google. It will probably also not block other privacy invasions or tracking systems that would benefit Google or its customers. Since Google is the world’s largest advertisement company, that’s quite a few.

This is likely just the first step of several that they might take while abusing their browser dominance. Watch carefully as things get worse the higher Chrome’s market share climbs.

You can still use an independent web browser, but who knows for how long? The effects I described in that old article linked above might lead to content no longer working correctly on anything but Google Chrome, and by that time Google’s control of what you can and cannot see, and also of how much of your privacy you are forced to surrender, will be total.