<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Linux on Voltaicforge</title>
        <link>https://6e2dbc8c.voltaicforge.pages.dev/categories/linux/</link>
        <description>Recent content in Linux on Voltaicforge</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-au</language><atom:link href="https://6e2dbc8c.voltaicforge.pages.dev/categories/linux/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Fixing Intel Hardware decoding on Linux (Ubuntu)</title>
        <link>https://6e2dbc8c.voltaicforge.pages.dev/p/2016/12/steam-vaapi-fix-linux/</link>
        <pubDate>Fri, 02 Dec 2016 00:00:00 +0000</pubDate>
        
        <guid>https://6e2dbc8c.voltaicforge.pages.dev/p/2016/12/steam-vaapi-fix-linux/</guid>
        <description>&lt;img src="https://6e2dbc8c.voltaicforge.pages.dev/p/2016/12/steam-vaapi-fix-linux/linux_stock.png" alt="Featured image of post Fixing Intel Hardware decoding on Linux (Ubuntu)" /&gt;&lt;h2 id=&#34;fix-for-lack-of-hardware-decoding-on-linux&#34;&gt;Fix for lack of hardware decoding on Linux&lt;/h2&gt;
&lt;p&gt;So I&amp;rsquo;ve switched to Linux recently (Mint 18). I realised that since I was moving to Steam in-home streaming, I could move my clunky desktop tower out into the living room/server closet and run Linux on my desktop. The only reason I&amp;rsquo;ve kept Windows running for so long was for gaming needs (and not wanting to fiddle around getting games to work on Linux)&lt;/p&gt;
&lt;p&gt;Thankfully, with Steams push into the Linux front and throwing its weight behind the Debian side, gaming in Linux is a thing. But it only supports about ~30% of my library, so my gaming PC needs to stay Windows.&lt;/p&gt;
&lt;p&gt;After years of running Debian servers at home (and Freenas for years before that) linux feels more comfortable than Windows. So I build a new mini-ITX, Intel i5 PC for desktop use, and moved the tower out into the living room.&lt;/p&gt;
&lt;p&gt;Unfortunately, my experience with steam streaming was jelly mouse! A quick check with setting &amp;lsquo;Display Performance information&amp;rsquo; in the in home streaming client area revealed it was not using hardware acceleration. It was using &amp;rsquo;libavcodec&amp;rsquo;, which is a software decoder.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://6e2dbc8c.voltaicforge.pages.dev/p/2016/12/steam-vaapi-fix-linux/Steam_Advanced_Client_Options.png&#34;
  width=&#34;440&#34;
  height=&#34;444&#34;
  srcset=&#34;https://6e2dbc8c.voltaicforge.pages.dev/p/2016/12/steam-vaapi-fix-linux/Steam_Advanced_Client_Options_hu0ab6acc567b404620bf68a550e35a0e0_28316_480x0_resize_catmullrom_3.png 480w, https://6e2dbc8c.voltaicforge.pages.dev/p/2016/12/steam-vaapi-fix-linux/Steam_Advanced_Client_Options_hu0ab6acc567b404620bf68a550e35a0e0_28316_1024x0_resize_catmullrom_3.png 1024w&#34;
  loading=&#34;lazy&#34;
  
    alt=&#34;Seam advanced client menu&#34;
  
  
    class=&#34;gallery-image&#34; 
    data-flex-grow=&#34;99&#34;
    data-flex-basis=&#34;237px&#34;
  
&gt;

&lt;blockquote class=&#34;book-hint note&#34;&gt;
  &lt;b&gt;Note:&lt;/b&gt; Check the &amp;lsquo;Display performance information box&amp;rsquo; to enable perfomance info, and press F6 ingame to check. Also, ensure you have &amp;lsquo;Enable Hardware decoding&amp;rsquo; checked on the client.
&lt;/blockquote&gt;
&lt;/p&gt;
&lt;p&gt;This introduced a bit of lag in the decoding (&amp;gt;50ms) which I could definitely notice.&lt;/p&gt;
&lt;h2 id=&#34;the-fix&#34;&gt;The fix&lt;/h2&gt;
&lt;p&gt;After much googling, the problem is that Steam on Ubuntu is bundled with its own libraries for VA-API. Unfortunately, it is bundled with old drivers that no longer work/are broken. The solution is to download the drivers from Ubuntu/your distros repo, remove Steams copy and &lt;code&gt;ln&lt;/code&gt; (symlink) them to the host&amp;rsquo;s updated drivers.&lt;/p&gt;
&lt;p&gt;Simply put, drop into terminal and &lt;code&gt;apt&lt;/code&gt; the below:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt install i965-va-driver:i386
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt install libva1:i386
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt install libva-x11-1:i386
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;apt install libva-glx1:i386
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will install the proper drivers into &lt;code&gt;/usr/lib/i386-linux-gnu&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Remove the old drivers from Steams folder (or &lt;code&gt;mv&lt;/code&gt; them if you prefer)&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;rm ~/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libva*
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The last step is to symlink these to Steam&amp;rsquo;s local folder. You can &lt;code&gt;ln -s&lt;/code&gt; if you wish, but a kind folk has created a bash script to do it for us!&lt;/p&gt;
&lt;p&gt;Grab the gist below (kindly created by Github user &lt;a class=&#34;link&#34; href=&#34;https://gist.github.com/benleov&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Benleov&lt;/a&gt;). Alternatively, &lt;code&gt;wget&lt;/code&gt; it with the below shell command:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;wget https://gist.githubusercontent.com/benleov/dc44ca9505a807e7dcc9/raw/673a82ff3d2356d27c9355088f58335bc89ab46b/fix_steam_links &amp;amp;&amp;amp; chmod +x fix_steam_links
./fix_steam_links
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote class=&#34;book-hint warning&#34;&gt;
  &lt;b&gt;Warning:&lt;/b&gt; Always check out the code that you are downloading code before executing to ensure its not malicious!
&lt;/blockquote&gt;

&lt;script type=&#34;application/javascript&#34; src=&#34;https://gist.github.com/benleov/dc44ca9505a807e7dcc9.js&#34;&gt;&lt;/script&gt;

</description>
        </item>
        
    </channel>
</rss>
