Don't want to see articles from a certain category? When logged in, go to your User Settings and adjust your feed in the Content Preferences section where you can block tags!
We do often include affiliate links to earn us some pennies. See more here.

Bioshock Infinite Early Linux Port Report

By -
tagline-image
Now that Bioshock Infinite has been released for Linux, and we have taken a little time with it, we can release some thought patterns on it.

Note: As with all first-looks these are my personal opinions, and your mileage may/will vary. Like with all of our first-looks and reviews they are from the point of view of the person testing, which is me in this case. Your testing may be different, but this will hopefully give you something to go by.

This was tested on Ubuntu Linux MATE 64bit (latest) with the Nvidia 970 graphics card and 16GB RAM.

Warning: You need the proprietary drivers, it won’t currently run on open source graphics. You have your warning.

You will need at least these driver versions:
Nvidia: 340.65
AMD: fglrx 14.12 (Currently only Radeon 7xxx and greater series cards are supported)

There still seems to be no official announcement of it on their Steam page, so it’s some form of “soft launch” I imagine while they see how it is received.

This is an early look at the game, but still clocking in well over an hours worth of solid testing.

Performance, Actually quite amazing
Performance wise it's actually quite solid. I was surprised at how smooth everything was, and it has put VP up in my books a lot. We always place credit where it is due, and the porting this time around was fantastic. The main issues with TW2 were the terrible performance of the initial port, and the poor communication at the start, so it seems they have worked some magic here.

Testing it initially on High, at 1080p has been giving me a very smooth game, and some solid framerates.

Alt+tab works as expected, and I’m really pleased with that result, as it infuriates me when I can’t do such a “simple” thing!

When reaching the actual main city, the FPS did go down a fair bit, but we are still talking constantly well over 100 FPS on High settings.

I decided to crank it up to Very High, and I have only seen it fall below 90 FPS when loading a new area, so I think that’s a really fantastic job that has been done.
There are some stuttering patterns that last maybe 1-2 seconds when a new area is loaded, but they quickly vanish. They are noticeable, but considering it happens only when loading a whole new area, I deem that acceptable.

I did notice one lighting bug, it pops between light and dark textures a few times on certain buildings and decorative items, so hopefully that will be easy to fix. It doesn't happen often, but it does happen.

The game is far more stable than Dying Light has been for me, which often crashes to the desktop 3-4 times in an hour. Bioshock has been running the whole time since I had it downloaded, and not a single crash.

The Game
It's really nice to be able to enjoy the game, especially as I’ve never played it before and the graphics are really quite good as well.

The story seems pretty interesting, and the world is vibrant and full of people chatting away for you to listen in on. I have literally no idea what is going on, but it’s keeping me very interested to find out more.

A major dislike about the game is the checkpoint save system, I never like checkpoint only saves, why do games not allow us to fill our massive hard drives with saved games? I like to pick and choose where I start and stop! That’s about my only dislike mind you.

As you progress further into the game, you will note some parts get a bit grim. Picking up a fire “Vigor” will show your fingers melting away which is both horrible and awesome at the same time.

The jumping mechanic from hook to hook was pretty fun too, and I had no idea this game had elements like that in it. While above on a hook you can do a special strike on enemy soldiers too, and that was awesome to fly down and pulverise them.

Final Verdict: The port is pretty solid, so I’m surprisingly happy with it. I still prefer native ports personally, as Virtual Programming will never be able to fix an issues in the game, only their wrapper technology.

Check out BioShock Infinite on Steam now.

Update, I did a video on it to show you how it performs for me, this is with vsync on, as any higher than 60FPS made SSR freak out when recording:
YouTube Thumbnail
YouTube videos require cookies, you must accept their cookies to view. View cookie preferences.
Accept Cookies & Show   Direct Link
Article taken from GamingOnLinux.com.
0 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
The comments on this article are closed.
68 comments
Page: «3/7»
  Go to:

wolfyrion Mar 18, 2015
on my GTX 980 is not working at all , it recognizes my card as an ATI card /facepalm
(wtb facepalm emoticon)
drmoth Mar 18, 2015
Quoting: wolfyrionon my GTX 980 is not working at all , it recognizes my card as an ATI card /facepalm
(wtb facepalm emoticon)

Whahahahaha..ha...ha...eeuuhh. That sounded pretty funny to begin with, but dang, that must be annoying!
wolfyrion Mar 18, 2015
Quoting: drmoth
Quoting: wolfyrionon my GTX 980 is not working at all , it recognizes my card as an ATI card /facepalm
(wtb facepalm emoticon)

Whahahahaha..ha...ha...eeuuhh. That sounded pretty funny to begin with, but dang, that must be annoying!


at the end of the crash log it says [thread 00000004][W][12147]: eON_LoadLibraryEx() couldn't load 'atiadlxx.dll', returning NULL!
:'( :><: :( :O :S:
System Information:
OS Version:
Linux Distribution: Manjaro Linux
Kernel Version: 3.19.1-1-MANJARO #1 SMP PREEMPT Sat Mar 7 18:57:21 UTC 2015

Hardware Info:
Machine Type System manufacturer System Product Name System Version
CPU Type GenuineIntel x86_64
CPU Info Intel(R) Core(TM) i7-4820K CPU @ 3.70GHz
CPU Speed 4500 MHz
CPU Physical Cores 4
CPU Logical Cores 8
Physical Memory 32890468 KiB
Virtual Memory 0 KiB

Crash Dump:
7b0ffe94-4eb6-958e-5a8b4d60-36e52389.dmp (531592 bytes)

Application Log:
[thread ffffffff][4]: Log system initialised
[thread ffffffff][4]: Default allowed number of simultaneously open files in the system is 2448.
[thread ffffffff][4]: Current memlock limit is 4294967295.
[thread ffffffff][5]: setup_teb_register() - using LDT entry 13
[thread 00000001][321]: OpenGL Core context version 4.1 detected
[thread 00000001][8247]: OpenGL information:
[thread 00000001][8247]: renderer: GeForce GTX 980/PCIe/SSE2
[thread 00000001][8247]: vendor: NVIDIA Corporation
[thread 00000001][8247]: version: 4.1.0 NVIDIA 346.47
[thread 00000001][8247]: GLSL version: 4.10 NVIDIA via Cg compiler
[thread 00000001][8247]: Available texture memory (from NVidia extension): 4194304 kB
[thread 00000001][8306]: TomCrypt initializing...
[thread 00000001][8306]: TomCrypt initialized
[thread 00000001][W][8307]: eON_GetProcAddress() for module 0x1750000, in PE file 'msvcrt.dll' FAILED. Proc not found at name '_get_terminate'.
[thread 00000001][8308]: Gamepads: joystick with GUID 030000006d0400001fc2000005030000 (name 'Logitech Gamepad F710') found
[thread 00000001][8308]: Gamepads: joystick has SDL instance id 0
[thread 00000005][W][8311]: While loading bitmap, source file 'C:\media\ROMS\SteamLibrary\steamapps\common\BioShock Infinite\Binaries\Win32\..\..\XGame\Splash\PC\Splash.bmp' wasn't there. Failing the function.
[thread 00000001][8345]: Gamepads: joystick with GUID 030000006d0400001fc2000005030000 (name 'Logitech Gamepad F710') found
[thread 00000001][8345]: Gamepads: joystick has SDL instance id 1
[thread 00000001][8364]: Gamepads: joystick with GUID 030000006d0400001ec2000020200000 (name 'Logitech Gamepad F510') found
[thread 00000001][8364]: Gamepads: joystick has SDL instance id 2
[thread 00000004][8825]: Enumerating COM libraries...
[thread 00000004][W][8840]: eON_LoadLibraryEx() couldn't load 'NVCPL.DLL', returning NULL!
[thread 00000004][W][8840]: eON_LoadLibraryEx() couldn't load 'ATIMGPUD.DLL', returning NULL!
[thread 00000004][W][8840]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][W][8840]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][W][8840]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][8840]: D3D11CreateDevice( pAdapter = 0xf05217d0, DriverType = 0, Software = (nil), Flags = 0, pFeatureLevels = 0xf183f7f0, FeatureLevels = 2, SDKVersion = 0x7, ppDevice = 0xf183f7fc, pFeatureLevel = 0xf183fa90, ppImmediateContext = 0xf183f800 )
[thread 00000004][8840]: D3D11CreateDevice( SDKVersion = 7 ) created device 0xf0555df8 and immediate context 0xf0542bf0
[thread 00000004][9155]: Direct3D -> OpenGL context information:
[thread 00000004][9155]: renderer: GeForce GTX 980/PCIe/SSE2
[thread 00000004][9155]: vendor: NVIDIA Corporation
[thread 00000004][9155]: version: 4.1.0 NVIDIA 346.47
[thread 00000004][9155]: GLSL version: 4.10 NVIDIA via Cg compiler
[thread 00000004][9163]: Immediate context thread now set to 4.
[thread 00000004][9163]: Immediate context owner thread 4 released it.
[thread 00000004][W][9163]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][9163]: Starting to delete D3D11 device...
[thread 00000004][9163]: Direct3D11ImmediateDeviceContext deletion starts.
[thread 00000004][9163]: Immediate context thread now set to 4.
[thread 00000004][9171]: Direct3D11ImmediateDeviceContext deletion done.
[thread 00000004][9171]: Direct3D11 device deleted.
[thread 00000004][9171]: Deleted D3D11 device.
[thread 00000004][W][9171]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][W][9171]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][W][9172]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][9172]: D3D11CreateDevice( pAdapter = 0xf05217d0, DriverType = 0, Software = (nil), Flags = 0, pFeatureLevels = 0xf1840e0c, FeatureLevels = 2, SDKVersion = 0x7, ppDevice = 0xf1840e18, pFeatureLevel = 0xf18410ac, ppImmediateContext = 0xf1840e1c )
[thread 00000004][9172]: D3D11CreateDevice( SDKVersion = 7 ) created device 0xf0555df8 and immediate context 0xf0542bf0
[thread 00000004][9337]: Direct3D -> OpenGL context information:
[thread 00000004][9337]: renderer: GeForce GTX 980/PCIe/SSE2
[thread 00000004][9337]: vendor: NVIDIA Corporation
[thread 00000004][9337]: version: 4.1.0 NVIDIA 346.47
[thread 00000004][9337]: GLSL version: 4.10 NVIDIA via Cg compiler
[thread 00000004][9346]: Immediate context thread now set to 4.
[thread 00000004][9403]: Immediate context owner thread 4 released it.
[thread 00000004][W][9403]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][9403]: Starting to delete D3D11 device...
[thread 00000004][9403]: Direct3D11ImmediateDeviceContext deletion starts.
[thread 00000004][9403]: Immediate context thread now set to 4.
[thread 00000004][9438]: Direct3D11ImmediateDeviceContext deletion done.
[thread 00000004][9438]: Direct3D11 device deleted.
[thread 00000004][9438]: Deleted D3D11 device.
[thread 00000004][W][9438]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][W][9438]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][W][9438]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][9438]: D3D11CreateDevice( pAdapter = 0xf05217d0, DriverType = 0, Software = (nil), Flags = 0, pFeatureLevels = 0xf1840ddc, FeatureLevels = 2, SDKVersion = 0x7, ppDevice = 0xf1840de8, pFeatureLevel = 0xf184107c, ppImmediateContext = 0xf1840dec )
[thread 00000004][9438]: D3D11CreateDevice( SDKVersion = 7 ) created device 0xf0555df8 and immediate context 0xf0542bf0
[thread 00000004][9604]: Direct3D -> OpenGL context information:
[thread 00000004][9604]: renderer: GeForce GTX 980/PCIe/SSE2
[thread 00000004][9604]: vendor: NVIDIA Corporation
[thread 00000004][9604]: version: 4.1.0 NVIDIA 346.47
[thread 00000004][9604]: GLSL version: 4.10 NVIDIA via Cg compiler
[thread 00000004][9612]: Immediate context thread now set to 4.
[thread 00000004][9687]: Immediate context owner thread 4 released it.
[thread 00000004][W][9687]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][9687]: Starting to delete D3D11 device...
[thread 00000004][9687]: Direct3D11ImmediateDeviceContext deletion starts.
[thread 00000004][9687]: Immediate context thread now set to 4.
[thread 00000004][9712]: Direct3D11ImmediateDeviceContext deletion done.
[thread 00000004][9712]: Direct3D11 device deleted.
[thread 00000004][9712]: Deleted D3D11 device.
[thread 00000004][W][9712]: eON_LoadLibraryEx() couldn't load 'nvapi.dll', returning NULL!
[thread 00000004][W][9728]: eON_LoadLibraryEx() couldn't load 'AgPerfMon_x86.dll', returning NULL!
[thread 00000004][W][9728]: eON_LoadLibraryEx() couldn't load 'apexuser.dll', returning NULL!
[thread 00000004][E][9835]: Unhandled argument ( 2 ) in eON_ShowWindow()!! Handle it.
[thread 00000004][E][9868]: Creation of mastering voice with different sample rate than 44100. Ignoring given sample rate, setting 44100.
[thread 00000004][W][10607]: GetKeyboardLayoutNameW() returning specific hardcoded layout. Implement it to detect real keyboard layout? This might make debugging harder...
[thread 00000004][W][10620]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][10637]: D3D11CreateDevice( pAdapter = 0xf05217d0, DriverType = 0, Software = (nil), Flags = 0, pFeatureLevels = 0x2d8d870, FeatureLevels = 1, SDKVersion = 0x7, ppDevice = 0x2d8d848, pFeatureLevel = 0xf183ed4c, ppImmediateContext = 0x2d8d84c )
[thread 00000004][10637]: D3D11CreateDevice( SDKVersion = 7 ) created device 0xf05d61d0 and immediate context 0xf05d7068
[thread 00000004][10788]: Direct3D -> OpenGL context information:
[thread 00000004][10788]: renderer: GeForce GTX 980/PCIe/SSE2
[thread 00000004][10788]: vendor: NVIDIA Corporation
[thread 00000004][10788]: version: 4.1.0 NVIDIA 346.47
[thread 00000004][10788]: GLSL version: 4.10 NVIDIA via Cg compiler
[thread 00000004][10796]: Immediate context thread now set to 4.
[thread 00000004][10870]: Immediate context owner thread 4 released it.
[thread 00000004][10870]: Immediate context thread now set to 4.
[thread 00000001][11003]: Ignoring motion
[thread 00000004][11072]: Immediate context owner thread 4 released it.
[thread 00000024][11278]: Initializing primary sound buffer
[thread 00000024][11357]: Immediate context thread now set to 36.
[thread 00000024][11379]: Precompiled shader cache loaded: binary shaders: 2, GLSL shaders: 32, GLSL pipelines: 4
[thread 00000004][W][11949]: GetKeyboardLayoutNameW() returning specific hardcoded layout. Implement it to detect real keyboard layout? This might make debugging harder...
[thread 00000004][W][12147]: DXGIAdapterImp::GetDesc() needs to provide more meaningful info in the future!
[thread 00000004][W][12147]: eON_LoadLibraryEx() couldn't load 'atiadlxx.dll', returning NULL!
[thread 00000004][W][12147]: eON_LoadLibraryEx() couldn't load 'atiadlxy.dll', returning NULL!
[thread 00000004][W][12148]: eON_LoadLibraryEx() couldn't load 'atiadlxx.dll', returning NULL!
[thread 00000004][W][12148]: eON_LoadLibraryEx() couldn't load 'atiadlxy.dll', returning NULL!
[thread 00000001][13952]: Ignoring motion
[thread 00000001][13962]: Ignoring motion
[thread 00000001][13973]: Ignoring motion
[thread 00000001][13973]: Ignoring motion
[thread 00000001][13983]: Ignoring motion
[thread 00000001][13994]: Ignoring motion
[thread 00000001][14004]: Ignoring motion
[thread 00000001][14014]: Ignoring motion
[thread 00000001][14024]: Ignoring motion
[thread 00000001][14035]: Ignoring motion
[thread 00000001][18488]: Ignoring motion
[thread 00000001][18521]: Ignoring motion
[thread 00000001][18554]: Ignoring motion
[thread 00000001][61712]: ===enforcing log flush===
[thread 00000001][61712]: Log system shutdown
Eike Mar 18, 2015
View PC info
  • Supporter Plus
Quoting: XzylGame maybe racist.

Not at all. It shows racists - but you are fighting them.
wolfyrion Mar 18, 2015
FIX IT!!! ^_^ :D

go to

~/.local/share/irrationalgames/bioshockinfinite/GameDocuments/My Games/BioShock Infinite/XGame/Config/XUserOptions.ini

find this line
bHasCompletedFirstBootFlow=0

and make it true like this
bHasCompletedFirstBootFlow=1
Liam Dawe Mar 18, 2015
Quoting: Eike
Quoting: XzylGame maybe racist.

Not at all. It shows racists - but you are fighting them.

It actually gives you a choice in the first racial scene, a game isn't racist if it's talking about it FYI.
Xpander Mar 18, 2015
FPS on average 80 , goes up to 250 and drops down to 45 in really crowded areas.
thats with all hihg/ultra 1920x1080
with everything low its pretty much constantly over 200 fps

solid work from VP i'd say.

system:
AMD FX 8320 @4.2ghz, 16GB DDR3 1866mhz, Asus 970 STRIX OC 346.47, Arch Linux 64bit, MATE desktop.


SSR doesnt like when game goes over 80 fps though.. its starting to drop frames for video output.
FramerateLOCK enabled from game SSR records fine but game has huge input lag :(

View video on youtube.com
Liam Dawe Mar 18, 2015
I don't get any input lag, even with framelocking on, so maybe I can do a video after all!
lucifertdark Mar 18, 2015
I've just had an earbashing for sitting in front of Bioshock Infinite for 3 hours, I got totally sucked into the game, that doesn't happen very often due to performance issues in most games but this just ran smoothly from the beginning. I LOVE IT!!!
melkemind Mar 18, 2015
View PC info
  • Supporter
Quoting: sarmad
Quoting: melkemindI think these wrapper versions of games are nice for the current Linux crowd that might not otherwise play the game if it were never ported, but I think it will still ultimately cause problems for Valve. If they hope to move Steam Machines, they'll have to present the public with games that have equal or better performance than Windows, Xbox One and PS4. Otherwise, it'll be a tough sell to make to the average user. The big selling point of PC gaming, even in Valve's own ads, is 1080p 60fps. They need release-day games that demonstrate that.

Not really. These are older games designed for PS3-level hardware and they will still run fine on Steam Machines despite the extra overhead of the wrapper. These games won't be used as a reference when comparing Steam Machines to consoles and even if they are used for comparison, it will still be in Steam Machines' favour. Afterall, Bioshock Infinite is available on Steam Machines but not on PS4 or XB1.
For newer games Valve isn't taking a wrapper route. Almost all major engines support Linux natively and Valve is working hard on getting Vulcan in a good shape. So expect newer games to be on par with Windows.

Good points. I suppose I'm just concerned, but it might be unjustified. Even some of the native ports, such as Dying Light, have had bad performance at launch, but I suppose that's common these days on Windows and consoles as well. Hopefully, it'll all go smoothly. I'd like to see this push for more Linux games to keep going.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
The comments on this article are closed.