{"id":123121,"date":"2022-03-21T08:00:00","date_gmt":"2022-03-21T08:00:00","guid":{"rendered":"https:\/\/fedoramagazine.org\/?p=36142"},"modified":"2022-03-21T08:00:00","modified_gmt":"2022-03-21T08:00:00","slug":"fedora-workstations-state-of-gaming-a-case-study-of-control-2019","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2022\/03\/21\/fedora-workstations-state-of-gaming-a-case-study-of-control-2019\/","title":{"rendered":"Fedora Workstation\u2019s State of Gaming \u2013 A Case Study of Control (2019)"},"content":{"rendered":"<p>Back in the day, it used to irk me as to how&nbsp;<em>GNU\/Linux<\/em>[1] distributions could not be even considered to be in the proximity of video games enthusiasts &#8211; less because of the performance of the video games themselves and more because of how inconvenient it could be for them to set it all up. Admittedly, it had been quite a while since an avid video games fan like me did that, so it was almost a no-brainer for me to try it out and see if things have changed. What I ended up finding surprised me &#8211; I like to think that it would be just as pleasing to both enthusiasts who have been playing video games on&nbsp;<em>GNU\/Linux<\/em>&nbsp;distributions and to newcomers who have been scoping this, alike.<\/p>\n<p> <span id=\"more-36142\"><\/span> <\/p>\n<p>On a testing bench using an&nbsp;<em>AMD RDNA2-based<\/em>[2] GPU, the video game was configured to the&nbsp;<em>highest possible graphical preset<\/em>[3] to really stress the hardware into performing as much as its limiting factor. If the&nbsp;<em>RDNA2 architecture<\/em>&nbsp;reminds you of something, allow me to share that it is what forms the foundation of the GPU that no other than the widely acclaimed&nbsp;<em>Steam Deck<\/em>[4] makes use of. For that matter, if you factor in some performance scaling with respect to the handheld nature of the device and the optimized Proton compatibility layer, this article can be representative of what the Steam Deck is capable of when you use&nbsp;<em>Fedora Workstation<\/em>[5] as a platform of your choice for playing your favourite video games.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2022\/03\/fedora-workstations-state-of-gaming-a-case-study-of-control-2019.png\" alt=\"\" \/><figcaption><strong>Figure 1<\/strong>&nbsp;&#8211;&nbsp;<em>GNOME Software<\/em>&nbsp;helps to install&nbsp;<em>Steam<\/em>&nbsp;conveniently<\/figcaption><\/figure>\n<p>To have an apples to apples comparison, we set up two environments &#8211; one with&nbsp;<em>Windows 10 21H2<\/em>[6] and one with&nbsp;<em>Fedora Workstation 35<\/em>. On the former, I installed&nbsp;<em>MSI Afterburner<\/em>[7] and ensured that the graphics drivers are up-to-date while I did not have to bother doing the same on the latter as they came preinstalled. The only extra thing that I did was to configure the&nbsp;<em>Lutris v7.1 runner<\/em>[8] after clicking my way through installing&nbsp;<em>Lutris<\/em>[9] and&nbsp;<em>MangoHUD<\/em>[10] from&nbsp;<em>GNOME Software<\/em>[11]. It is downright astonishing how much you can do these days on&nbsp;<em>GNU\/Linux<\/em>&nbsp;distributions without actually having to interact with the command line, making the entry barrier very low and welcoming.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2022\/03\/fedora-workstations-state-of-gaming-a-case-study-of-control-2019-1.png\" alt=\"\" \/><figcaption><strong>Figure 2<\/strong>&nbsp;&#8211;&nbsp;<em>GNOME Software<\/em>&nbsp;helps to install&nbsp;<em>Lutris<\/em>&nbsp;conveniently<br \/><\/figcaption><\/figure>\n<p>Before we get into some actual performance testing and comparison results, let me talk a bit about the video game that is at the centre of the case study.&nbsp;<em>Control<\/em>[12] is an action-adventure video game developed by&nbsp;<em>Remedy Entertainment<\/em>[13] and published by&nbsp;<em>505 Games<\/em>[14]. The video game is centred around a fictitious organization about paranormal activities and takes inspiration from the likes of the&nbsp;<em>SCP Foundation<\/em>[15]. It is a well-optimized video game that exhibits great graphics and is a showcase of what the underlying hardware is capable of. I ran tests on both&nbsp;<em>DirectX 11<\/em>[16] and&nbsp;<em>DirectX 12<\/em>[17] versions of the video game with their&nbsp;<em>compatibility layers<\/em>[18],&nbsp;<em>DXVK<\/em>[19] and&nbsp;<em>VKD3D<\/em>[20], respectively.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2022\/03\/fedora-workstations-state-of-gaming-a-case-study-of-control-2019-2.png\" alt=\"\" \/><figcaption><strong>Figure 3<\/strong>&nbsp;&#8211;&nbsp;<em>Lutris<\/em>&nbsp;configured to play&nbsp;<em>Control (2019)<\/em>&nbsp;using the Wine runner<\/figcaption><\/figure>\n<p>Following are the results of the tests. I made use of&nbsp;<em>OBS Studio<\/em>[21], which is available as both an installer binary and as a package in the&nbsp;<em>RPM Fusion<\/em>[22] repositories, to record around 15 seconds of in-menu gameplay and around 60 seconds of in-game gameplay. As the video game does not have any intrinsic benchmarking tool, the footage had to be broken down into segments of equal time periods to be able to pick up performance statistics on CPU usage, GPU usage and framerate. Please do note, even when&nbsp;<em>OBS Studio<\/em>&nbsp;introduces a certain overhead to the performance, the comparison still remains valid as in both the platforms the recording software is configured identically.<\/p>\n<h3>Metrics<\/h3>\n<ul>\n<li>Framerate\n<ul>\n<li>In the menus<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/user-images.githubusercontent.com\/49605954\/156968347-39021f89-3387-466d-8eca-bb4b1b71c37b.svg\" alt=\"\" \/><figcaption><strong>Figure 4<\/strong>&nbsp;&#8211;&nbsp;Framerate in the menus<\/figcaption><\/figure>\n<ul>\n<li>In the game<\/li>\n<\/ul>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/user-images.githubusercontent.com\/49605954\/156975902-169ab447-857e-4276-b710-8b3dc7fe5bf7.svg\" alt=\"\" \/><figcaption><strong>Figure 5<\/strong>&nbsp;&#8211;&nbsp;Framerate in the game<\/figcaption><\/figure>\n<ul>\n<li>CPU usage\n<ul>\n<li>In the menus<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/user-images.githubusercontent.com\/49605954\/156976186-40bc2e53-2c04-4c9c-80bf-b4f5d9f74dd2.svg\" alt=\"\" width=\"648\" height=\"259\" \/><figcaption><strong>Figure 6<\/strong>&nbsp;&#8211;&nbsp;CPU usage in the menus<\/figcaption><\/figure>\n<ul>\n<li>In the game<\/li>\n<\/ul>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/user-images.githubusercontent.com\/49605954\/156976255-74d90b2b-2b33-4fc2-abaa-9d022d68b4d8.svg\" alt=\"\" \/><figcaption><strong>Figure 7<\/strong>&nbsp;&#8211;&nbsp;CPU usage in the game<\/figcaption><\/figure>\n<ul>\n<li>GPU usage\n<ul>\n<li>In the menus<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<figure class=\"wp-block-image is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/user-images.githubusercontent.com\/49605954\/156976635-3b266cd6-e11d-4ed5-8548-52272f9de3f6.svg\" alt=\"\" width=\"648\" height=\"259\" \/><figcaption><strong>Figure 8<\/strong>&nbsp;&#8211;&nbsp;GPU usage in the menus<\/figcaption><\/figure>\n<ul>\n<li>In the game<\/li>\n<\/ul>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/user-images.githubusercontent.com\/49605954\/156976393-41a5be4e-d14c-4ad7-b9b5-bc5ebdca2b3e.svg\" alt=\"\" \/><figcaption><strong>Figure 9<\/strong>&nbsp;&#8211;&nbsp;GPU usage in the game<\/figcaption><\/figure>\n<p>Please feel free to let your inner enthusiast loose in the statistics and try sharing as many performance differences as you have inferred so far in <a href=\"https:\/\/fedoramagazine.org\/fedora-workstations-state-of-gaming\/#comments\">the comments section below<\/a>. In the meanwhile, allow me to share mine &#8211;<\/p>\n<ul>\n<li>With&nbsp;<em>DXVK<\/em>&nbsp;(<em>DirectX 11<\/em>), the loss of average in-menu framerate is around 19.87% and the same for average in-game framerate is barely 6.26%.&nbsp;<em>DXVK<\/em>&nbsp;is almost at the stage where a blind test of framerate smoothness could potentially confuse anyone as to which platform runs natively.<\/li>\n<li>With&nbsp;<em>VKD3D<\/em>&nbsp;(<em>DirectX 12<\/em>), the loss of average in-menu framerate is barely 8.67% and the same for average in-game framerate is around 24.51%.&nbsp;<em>VKD3D<\/em>&nbsp;seems to be steadily catching up and very soon enough, video games would be able to run with minimal loss of performance.<\/li>\n<li>With&nbsp;<em>DXVK<\/em>, there is only 1.40% of additional average CPU usage in the menus and around 17.88% of the same in the game. Closing this gap would help save battery life on handheld devices.<\/li>\n<li>With&nbsp;<em>VKD3D<\/em>, the average CPU usage in the menus is around 1.47% less than the equivalent Windows platform and the same in the game is 1.62% more.&nbsp;<em>VKD3D<\/em>&nbsp;is a great choice for handheld devices.<\/li>\n<li>With&nbsp;<em>DXVK<\/em>, the average GPU usage in the menus is around 13.40% more than that on Windows and the same in the game is around 1.04% more, making it more efficient in geometry rendering and less so in sprites.<\/li>\n<li>With&nbsp;<em>VKD3D<\/em>, the average GPU usage in the game is around 8.13% more than that on Windows and the same in the game is around 9.34% less, thus helping save battery on handheld devices running these video games.<\/li>\n<li>The&nbsp;<em>CPU governor<\/em>[23] makes a marginal difference in performance and hence, it is something that can be left alone untweaked. The marginal difference noticed can also be considered in the margin of error.<\/li>\n<li><em>Fedora Workstation<\/em>&nbsp;uses fewer system resources out of the box and hence, can easily dedicate a huge chunk of those to the video game in question but the same is not possible in&nbsp;<em>Windows 10 21H2<\/em>.<\/li>\n<\/ul>\n<p>For someone who looked into\u00a0<em>GNU\/Linux<\/em>\u00a0distributions as a platform for using interactive and entertainment software applications without having any fancy hardware requirements, these results almost feel like a breath of fresh air. With\u00a0<em>Valve<\/em>[24] working on strengthening\u00a0<em>Proton<\/em>[25] and other communities working on great solutions like\u00a0<em>Bottles<\/em>[26] and\u00a0<em>Lutris<\/em>, gaming on\u00a0<em>GNU\/Linux<\/em>\u00a0distributions is no longer an elusive dream. Things are only going to get better with a great number of video games running at near-native performance as we go on. I do not know for certain if 2022 would be the year of Linux Desktop or not, but if you ask me whether 2022 would be the year of Linux Gaming &#8211; I would answer that with a resounding yes. Let me know your thoughts <a href=\"https:\/\/fedoramagazine.org\/fedora-workstations-state-of-gaming\/#comments\">down below<\/a>!<\/p>\n<h3>Appendix<\/h3>\n<ol>\n<li><em>Highest possible graphical preset<\/em>[3]<\/li>\n<li><em>Configuration differences<\/em>[27]<\/li>\n<li><em>Performance measurements in the menus<\/em>[28]<\/li>\n<li><em>Performance measurements in the game<\/em>[29]<\/li>\n<\/ol>\n<h3>References<\/h3>\n<ol>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Linux\">https:\/\/en.wikipedia.org\/wiki\/Linux<\/a><\/li>\n<li><a href=\"https:\/\/www.amd.com\/en\/technologies\/rdna-2\">https:\/\/www.amd.com\/en\/technologies\/rdna-2<\/a><\/li>\n<li><a href=\"https:\/\/gist.github.com\/t0xic0der\/e6958f9404d395705a8b67a1ab39d024#file-preset-csv\">https:\/\/gist.github.com\/t0xic0der\/e6958f9404d395705a8b67a1ab39d024#file-preset-csv<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Steam_Deck\">https:\/\/en.wikipedia.org\/wiki\/Steam_Deck<\/a><\/li>\n<li><a href=\"https:\/\/getfedora.org\/\">https:\/\/getfedora.org\/<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/release-health\/status-windows-10-21h2\">https:\/\/docs.microsoft.com\/en-us\/windows\/release-health\/status-windows-10-21h2<\/a><\/li>\n<li><a href=\"https:\/\/www.msi.com\/Landing\/afterburner\/graphics-cards\">https:\/\/www.msi.com\/Landing\/afterburner\/graphics-cards<\/a><\/li>\n<li><a href=\"https:\/\/lutris.net\/runners\">https:\/\/lutris.net\/runners<\/a><\/li>\n<li><a href=\"https:\/\/lutris.net\/\">https:\/\/lutris.net\/<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/flightlessmango\/MangoHud\">https:\/\/github.com\/flightlessmango\/MangoHud<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.gnome.org\/GNOME\/gnome-software\">https:\/\/gitlab.gnome.org\/GNOME\/gnome-software<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Control_(video_game)\">https:\/\/en.wikipedia.org\/wiki\/Control_(video_game)<\/a><\/li>\n<li><a href=\"https:\/\/www.remedygames.com\/\">https:\/\/www.remedygames.com\/<\/a><\/li>\n<li><a href=\"https:\/\/505games.com\/\">https:\/\/505games.com\/<\/a><\/li>\n<li><a href=\"https:\/\/scp-wiki.wikidot.com\/\">https:\/\/scp-wiki.wikidot.com\/<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/DirectX#DirectX_11\">https:\/\/en.wikipedia.org\/wiki\/DirectX#DirectX_11<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/DirectX#DirectX_12\">https:\/\/en.wikipedia.org\/wiki\/DirectX#DirectX_12<\/a><\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Compatibility_layer\">https:\/\/en.wikipedia.org\/wiki\/Compatibility_layer<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/doitsujin\/dxvk\">https:\/\/github.com\/doitsujin\/dxvk<\/a><\/li>\n<li><a href=\"https:\/\/source.winehq.org\/git\/vkd3d.git\/\">https:\/\/source.winehq.org\/git\/vkd3d.git\/<\/a><\/li>\n<li><a href=\"https:\/\/obsproject.com\/\">https:\/\/obsproject.com\/<\/a><\/li>\n<li><a href=\"https:\/\/rpmfusion.org\/\">https:\/\/rpmfusion.org\/<\/a><\/li>\n<li><a href=\"https:\/\/wiki.archlinux.org\/title\/CPU_frequency_scaling#Scaling_governors\">https:\/\/wiki.archlinux.org\/title\/CPU_frequency_scaling#Scaling_governors<\/a><\/li>\n<li><a href=\"https:\/\/www.valvesoftware.com\/en\/\">https:\/\/www.valvesoftware.com\/en\/<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/ValveSoftware\/Proton\">https:\/\/github.com\/ValveSoftware\/Proton<\/a><\/li>\n<li><a href=\"https:\/\/usebottles.com\/\">https:\/\/usebottles.com\/<\/a><\/li>\n<li><a href=\"https:\/\/gist.github.com\/t0xic0der\/e6958f9404d395705a8b67a1ab39d024#file-config-csv\">https:\/\/gist.github.com\/t0xic0der\/e6958f9404d395705a8b67a1ab39d024#file-config-csv<\/a><\/li>\n<li><a href=\"https:\/\/gist.github.com\/t0xic0der\/e6958f9404d395705a8b67a1ab39d024#file-in-menu-csv\">https:\/\/gist.github.com\/t0xic0der\/e6958f9404d395705a8b67a1ab39d024#file-in-menu-csv<\/a><\/li>\n<li><a href=\"https:\/\/gist.github.com\/t0xic0der\/e6958f9404d395705a8b67a1ab39d024#file-in-game-csv\">https:\/\/gist.github.com\/t0xic0der\/e6958f9404d395705a8b67a1ab39d024#file-in-game-csv<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Back in the day, it used to irk me as to how&nbsp;GNU\/Linux[1] distributions could not be even considered to be in the proximity of video games enthusiasts &#8211; less because of the performance of the video games themselves and more because of how inconvenient it could be for them to set it all up. Admittedly, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":123122,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[48],"tags":[606,45,247,334,46,47,1289,1290],"class_list":["post-123121","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fedora-os","tag-faqs-and-guides","tag-fedora","tag-gaming","tag-linux","tag-magazine","tag-news","tag-rdna2","tag-steam-deck"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/123121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=123121"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/123121\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media\/123122"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=123121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=123121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=123121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}