ValveSoftware / Proton

Compatibility tool for Steam Play based on Wine and additional components
Other
22.74k stars 997 forks source link

Final Fantasy 14 (39210) #580

Open nstgc opened 5 years ago

nstgc commented 5 years ago

Final Fantasy 14's installer (after Steam does it's own installing) doesn't have any fonts its seems, favoring [] over actual characters. Even the numbers, so its not that its trying to display Japanese characters and my system is missing them (which is not the case since I occasionally use them myself). Potential UTF-8 problem?

HereInPlainSight commented 5 years ago

Updated: 04-14-20, added WINE and GE-Proton build on 04-19-20: If you are looking to run FFXIV via Proton, there's a few instructions for current installs: 1) Default Proton will not work. You will need to grab a release from GloriousEggroll's repo and follow his installation instructions. 2) You will need to run the following command: WINEPREFIX=$HOME/.steam/root/steamapps/compatdata/39210/pfx winetricks hidewineexports=enable assuming you use the default location for your library of a regular Steam installation. If you do not, adapt the path appropriately.

Other launcher / non-Steam versions instructions:

Issues of note: 1) The new launcher is disabled by Steam / GE-Proton by default -- at some point, this will likely stop working. It has an open wine ticket here. 2) If you're using a post-processing injector (ReShade, GShade, etc), the game is hampered by a several-second stutter whenever the mouse is moved. It has an open wine ticket here. You can get a working WINE here (based on WINE 5.4) and a working Proton (built from GloriousEggroll's repo on 04-18-20) here.

Previous updates: Updated: 07-31-19: Hello, Warriors of Darkness / Light! If you are attempting to play FFXIV via Proton, it has been greatly simplified!

Once XIV is installed via Steam, simply open the file at ~/.steam/steam/steamapps/compatdata/39210/pfx/drive_c/users/steamuser/My Documents/My Games/FINAL FANTASY XIV - A Realm Reborn/FFXIV.cfg and change CutsceneMovieOpening 0 to 1. (If you are running the demo, always swap 39210 with 312060.)

If you do not see the option to install the game via Steam after purchase, you need to, inside of your Steam client, open Steam -> Settings -> Steam Play, then check both 'Enable Steam Play for supported titles' and 'Enable Steam Play for all other titles', restart Steam when prompted, and you should be set!

Welcome to the community!


Original post: I'm not sure if this is the same issue directly. I've gotten XIV working via Proton, but I had to follow well-known wine answers to get it playable. Namely, I have to edit two files in the steamapps/compatdata/39210/pfx/drive_c/users/steamuser/My Documents/My Games/FINAL FANTASY XIV - A Realm Reborn/ directory.

In FFXIV_BOOT.cfg, I had to edit BrowserType to 2, and in FFXIV.cfg I have to edit CutsceneMovieOpening to 1.

The first change allows me to get to the launcher at this point -- if it's left to its default value I get 'A system error has occured: 404. HTTPS System Error'. Afraid I did the install mid-week, so I'm not sure if this is how I got past nstgc's issue during installation. Obviously the latter change means I don't get to see the opening cutscene the first time I play the game, but if I leave it at default value, the game launches but hangs up after selecting a Data Center.

As these edit game configuration files I'm not sure if this is something Valve wants to consider for Proton, but at the least it's information.

kisak-valve commented 5 years ago

FFXIV Freezes when Real Time Reflections are enabled

Issue transferred from https://github.com/ValveSoftware/Proton/issues/627. @ulzeraj posted on 2018-08-26T05:58:03:

Final Fantasy 14 (ID: 39210) works on DX11 mode after some manual workarounds which are editing the INI files to set browser type to 2, disable the opening cutscene and use winetricks xact into its prefix.

However… graphics stop working immediately after I enable “Real Time Reflections”. Enabling any level of this particular option freezes the game and X11. I can still log into through SSH and there are these messages:

[ 384.698959] [drm:amdgpu_job_timedout [amdgpu]] ERROR ring gfx timeout, last signaled seq=202749, last emitted seq=202751 [ 384.698964] [drm] GPU recovery disabled.

GPU is Saphire R9 390. System is OpenSUSE Tubleweed with kernel 4.18.0-1, using amdgpu and Mesa 18.1.6 LLVM6. Same hardware and game works fine on Windows 10 with Real Time Reflections on.

Thanks for the hard work.


@doitsujin commented on 2018-08-26T10:47:10

Please test with LLVM 7 and Mesa 18.2, as suggested in PREREQS.md.


@HereInPlainSight commented on 2018-08-26T15:37:13

System info: Gentoo x86_64 | 4.14.65-gentoo | i5-6500 | NVIDIA GeForce GTX 1070 | NVIDIA 396.51

I had previously done the config file edits, just emerged llvm7 and added the xact winetricks to the prefix, switched to DX11 and can confirm I'm able to run with Real Time Reflections at any setting I want.


@doitsujin commented on 2018-08-26T16:12:39

@HereInPlainSight The LLVM version is only relevant for AMD drivers because they use LLVM to compile shaders. Mesa needs to be built against LLVM 7 in order to work correctly.


@HereInPlainSight commented on 2018-08-26T16:50:18

@doitsujin I wasn't 100% on that because the DirectX11 info seems to indicate that LLVM7 is recommended to avoid GPU hangs, which is mentioned after the drivers section. My gaming on Linux before the new SteamPlay info was fairly casual, so I opted to go safe over sorry.

ulzeraj commented 5 years ago

Using the recommended libs fixed the issue for me but now I have the missing fonts issue described by @nstgc. I should mention that the fonts issue didn’t occurred in OpenSUSE Tumbleweed.

I’ve switched to Ubuntu Bionic in order to fill the requierements described on PREREQS.md. Installing from those repos gave me Mesa 18.3 compiled against LLVM 8.0. I also installed LLVM and CLANG 8 since the document does not make it clear if libllvm8 is enough. I’m still using amdgpu from kernel 4.18.5-041805 which I installed from UKKUU.

By the way the wine and winetricks from Ubuntu default repos are too old and applying xact through them will cause the game to fail on launch.

ManaHime commented 5 years ago

somehow I manage to add those fonts using "winetricks allfonts" But I seem to be unable to actually input Japanese characters using iBus anthy on Ubuntu 18.04 Can anyone else confirm? (Or is able to write Japanese in FFXIV chat really)

csos95 commented 5 years ago

Neither my steam controller or xbox 360 controller works.
They are they both show up in the gamepads list in the setting menu so they are detected, but button presses don't work.

ulzeraj commented 5 years ago

Here the controllers do not work through steam as they should but I've managed to use them through the SDL native system.

For DS4 this works by adding the following variable to your profile (.bashrc or /etc/environment) and disabling the steam controller system.

export SDL_GAMECONTROLLERCONFIG='030000004c050000cc09000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,050000004c050000cc09000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux,'

Thing is... I should be able to disable the controller just for that game but Steam somewhat renames the device node paths so to make it work I need to disable everything. The device renaming thing do not happen in OpenSuSE.

legluondunet commented 5 years ago

The cinematics do not play, could be related to issue #1464.

csos95 commented 5 years ago

I found the solution to my issue here: https://www.reddit.com/r/archlinux/comments/9bl3l7/steam_controller_not_working_with_protonsteam/

The issue was that two inputs were being created for one controller.
running sudo rmmod hid_steam and restarting steam fixed the issue.

kisak-valve commented 5 years ago

Failure to load embedded web page in game launcher (appid: 39210)

Issue transferred from https://github.com/ValveSoftware/Proton/issues/2183. @TenaarFeiri posted on 2019-01-02T23:58:28:

Compatibility Report

System Information

I confirm:

https://gist.github.com/TenaarFeiri/9e560a89346b17cc2de0ac9b508259e8

Symptoms

The issue is Proton doesn't seem able to help ffxivlauncher.exe use the correct web browser to embed its login page with. I've had reports that the game itself is functional once you get past the launcher, but I'm unable to test it as this is a crucial step for downloading the game.

The launcher itself reports a HTTPS 404 error, as it can't find a browser to use for the launcher's landing page.

Reproduction

TenaarFeiri commented 5 years ago

EDIT: Got the game to run :D Currently I'm having an issue that there's no audio in DX11, but there is audio in DX9. I much prefer to play in DX11 as the performance is better. Any ideas? I'm using Proton 3.16-6 (Beta) now.


I just found this and applied some of the tweaks mentioned above and I got the launcher working =)

It remains to see if I can get the game itself to run when it's finished downloading but we'll see!

I notice prefixes being mentioned above. I'm not terribly tech savvy; how would I go about applying them if I need them?

TenaarFeiri commented 5 years ago

Any idea how to get sound going in DirectX 11? DX9 has sound but it's virtually unplayable.

legluondunet commented 5 years ago

@TenaarFeiri With Wine I had to install xact and then override xaudio2_7

TenaarFeiri commented 5 years ago

Do you know how to do this with Proton Wine? I'm not entirely savvy with this stuff yet.

TenaarFeiri commented 5 years ago

@TenaarFeiri With Wine I had to install xact and then override xaudio2_7

I figured it out! Thank you so much for pointing me in the right direction. I installed a proper version of Wine as instructed at winehq.org, and then did: WINEPREFIX=game_folder_in_steam winecfg and set xaudio2_0 and xaudio2_7 in the override. That did the trick! I now have audio and great performance!

TenaarFeiri commented 5 years ago

EDIT: Turns out the issue was my desktop environment. I uninstalled Ubuntu 18.10 and replaced it with Kubuntu 18.10 and now Windowed Mode is working great!

Okay! New problem! So the game works perfectly in Windowed Fullscreen with no issues whatsoever (that I can see). But I actually prefer to play the game in Windowed mode, and that's where problems emerge: I have skills bound to num pad keys, that activate when I press my mouse buttons. In Windowed Fullscreen they work great with no errors, but when I use them in Windowed more, there is a noticeable FPS plummet/freeze that makes it hard to play like that.

I recorded a video: https://youtu.be/iqLxMQLCLe4 (the low framerate of the game is a result of the recording, but thankfully it also makes it super obvious when I hit the mouse buttons so you can observe).

Any ideas on how I could fix this?

flibitijibibo commented 5 years ago

The latest FAudio revision fixes audio for the DX11 version:

https://github.com/FNA-XNA/FAudio/commit/83f8734ef15f76fcbacd7279f890aefde9d62021

EDIT: As long as you turn reverb off... add return buffer; after this line if you really try this out:

https://github.com/FNA-XNA/FAudio/blob/master/src/FAudio_internal.c#L628

flibitijibibo commented 5 years ago

Latest FAudio revision fixes effects too! The game sounds fine on my own setup now without modifications (minus some attenuation, but that shouldn't be ear-wrenching).

TenaarFeiri commented 5 years ago

Together with all of the above, and with xact, xaudio2_0-9, I think official support shouldn't be that far away? It works perfectly with those fixes in Proton 3.16-6 Beta, and really the biggest hurdle is just changing the BrowserType to 2, and CutsceneMovieOpening to 1 as described by @HereInPlainSight. But that's something I'd wager the Steam client should be able to do on its own when the game is installed, surely?

flibitijibibo commented 5 years ago

Proton 3.16-7 includes the latest FAudio changes, so audio should work properly with the DX11 version.

Equivocal90 commented 5 years ago

With the 3.16-7 beta, I recreated the compatdata for this game to completely undo any manual modifications. I did still have to change BrowserType to 2, and CutsceneMovieOpening to 1. Audio now works without xaudio dll overrides but, the audio gets progressively more delayed with playtime. After ~20-30 minutes of playtime all audio gets delayed by 1-2 seconds.

Is anyone else experiencing something similar?

flibitijibibo commented 5 years ago

Took a quick look and I believe you've stumbled upon a design issue with SDL_AudioStreams. I've swapped out the resampler, so if I did everything right the lag should be gone (and hopefully the sound quality is still okay):

https://github.com/FNA-XNA/FAudio/commit/fe31f1b6b021f4896016dc2eacc85026005abdf9

holon-holon commented 5 years ago

I'm still having issues with an HTTPS error in the launcher despite BrowserType having been set to 2. Tested under GNOME with Wayland, GNOME on Xorg, and Plasma to no avail.

Equivocal90 commented 5 years ago

I'm still having issues with an HTTPS error in the launcher despite BrowserType having been set to 2. Tested under GNOME with Wayland, GNOME on Xorg, and Plasma to no avail.

Try deleting the "web" folder in ~/.local/share/Steam/steamapps/compatdata/39210/pfx/drive_c/users/steamuser/My Documents/My Games/FINAL FANTASY XIV - A Realm Reborn/

I have 2 Fedora 29 machines where on one I have to constantly delete that folder for the launcher to load while on the other does not require it. Although, I'm not sure what is different between the two machines

TenaarFeiri commented 5 years ago

Sometimes you'll also get the problem when you just can't connect to their landing page.

I'm guessing you already have, but on the off chance you haven't, check to see that your BrowserType is set to 2 in boot.cfg (I believe?).

Den lør. 2. mar. 2019, 03:37 skrev Equivocal90 notifications@github.com:

I'm still having issues with an HTTPS error in the launcher despite BrowserType having been set to 2. Tested under GNOME with Wayland, GNOME on Xorg, and Plasma to no avail.

Try deleting the "web" folder in ~/.local/share/Steam/steamapps/compatdata/39210/pfx/drive_c/users/steamuser/My Documents/My Games/FINAL FANTASY XIV - A Realm Reborn/

I have 2 Fedora 29 machines where on one I have to constantly delete that folder for the launcher to load while on the other does not require it. Although, I'm not sure what is different between the two machines

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/Proton/issues/580#issuecomment-468874158, or mute the thread https://github.com/notifications/unsubscribe-auth/APgQqIDNj5NfLmXrWkWA0EMScT75Ts9Hks5vSePkgaJpZM4WMfqx .

Equivocal90 commented 5 years ago

Sometimes you'll also get the problem when you just can't connect to their landing page. I'm guessing you already have, but on the off chance you haven't, check to see that your BrowserType is set to 2 in boot.cfg (I believe?). Den lør. 2. mar. 2019, 03:37 skrev Equivocal90 notifications@github.com: I'm still having issues with an HTTPS error in the launcher despite BrowserType having been set to 2. Tested under GNOME with Wayland, GNOME on Xorg, and Plasma to no avail. Try deleting the "web" folder in ~/.local/share/Steam/steamapps/compatdata/39210/pfx/drive_c/users/steamuser/My Documents/My Games/FINAL FANTASY XIV - A Realm Reborn/ I have 2 Fedora 29 machines where on one I have to constantly delete that folder for the launcher to load while on the other does not require it. Although, I'm not sure what is different between the two machines — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#580 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/APgQqIDNj5NfLmXrWkWA0EMScT75Ts9Hks5vSePkgaJpZM4WMfqx .

On my machine that has the issue BrowserType is set to 2 and it gives a different https error. It either succeeds or gives me a -22 or -21 error until I delete the folder I specified earlier.

Mushoz commented 5 years ago

Question for people playing this game: Is just the initial cutscene that needs to be skipped, or are ingame cutscenes also not working? I managed to get the game to work, but since this is the first time playing the game, I don't know where I am supposed to see cutscenes ingame.

TenaarFeiri commented 5 years ago

@Equivocal90

I'm not sure how to deal with that. =( I have been lucky enough to avoid having that problem! Which version of Proton are you using? I'm using the latest one (Beta). I thought maybe desktop environment might be an issue but you've tested it on a few. But I'm using Kubuntu/Debian, so it could be Fedora has a different problem I'm not able to guess.

@Mushoz In-game cutscenes will work fine, and you can even view the cinematics in FFXIV from the opening menu when the client has been opened. Interestingly, there seems to be no obvious reason why the client wouldn't start with initial cutscenes enabled, as it handles actually playing them just fine once it's running? Either way, all in-game cutscenes should work! I've yet to encounter any issues.

I'm slightly dreading Shadowbringers, though! No idea how that's going to mess with the current performance on Proton.

schives commented 5 years ago

@flibitijibibo and @Equivocal90 : I can confirm that latest faudio fixes the progressive sound delay.

I seem to have run into a different problem though...

After a while playing (sometimes its < 30 minutes, sometimes it's more than 2 hours), I begin getting huge variance in frame time that cause the game to stutter. I changed "DXVK_HUD": "full" in user_settings.py for proton to observe exactly what's going on... and after about 50 minutes of gameplay, it happened again.

What I found was that the following cause huge spikes in time taken to render frames:

How I know it's key typed:

  1. Press and hold a key (ie D to turn right): stuttering starts, then the stuttering stops for a moment, then resumes a moment later.
  2. If you now tap another key (like W to move forward), the stuttering will stop when you release the 2nd key (W in this case) even though you're still holding the first key.

This is the same behavior my system has when typing in a textbox. Once the game gets like this, it doesn't stop until the game is restarted.

Note that the game works flawlessly up until this starts (if it weren't for this, I'd say it could have official support). It happens at such random times that I haven't figured out a way to reproduce it myself (other than just playing for a long time - just sitting idle doesn't seem to work).

OS: Kubuntu 18.04 LTS (compositor disabled) GPU: RX 580 8GB Proton: 3.16-7 Beta Mesas tried: 18.2, and 19.0.99 (Oibaf latest) LLVM: 7.0.1

I have:

I'm fresh out of ideas, so any help is welcome.

ghost commented 5 years ago

The game in the graphic part works flawlessly But the audio gets delayed after a short time (10 min I'd say) and it becomes annoying

Equivocal90 commented 5 years ago

The game in the graphic part works flawlessly But the audio gets delayed after a short time (10 min I'd say) and it becomes annoying

My understanding is that issue should be fixed when Proton gets a newer version of FAudio

TenaarFeiri commented 5 years ago

The game in the graphic part works flawlessly But the audio gets delayed after a short time (10 min I'd say) and it becomes annoying

You may be able to solve this by opening Properties on the game and set launch options to this:

PULSE_LATENCY_MSEC=60 %command%

It really should just fix crackling, but for lack of other suggestions until FAudio is updated, it's worth a shot?

schives commented 5 years ago

@Turbito if you clone and build FAudio, then replace the libFAudio.so used by steam with the one you built, the sound is perfect:

https://github.com/FNA-XNA/FAudio

Just build and replace proton's current. If you're on Ubuntu, you'll need the following packages:

I'm currently using one that's slightly older at the moment (https://github.com/FNA-XNA/FAudio/tree/e5c9c20c3a1e24efb35a1eb2156e7d306f94e518), but current master should work as well.

P.S. If you end up running into the problem I described in my previous post, I'd like to know.

holon-holon commented 5 years ago

Sometimes you'll also get the problem when you just can't connect to their landing page. I'm guessing you already have, but on the off chance you haven't, check to see that your BrowserType is set to 2 in boot.cfg (I believe?). Den lør. 2. mar. 2019, 03:37 skrev Equivocal90 notifications@github.com: I'm still having issues with an HTTPS error in the launcher despite BrowserType having been set to 2. Tested under GNOME with Wayland, GNOME on Xorg, and Plasma to no avail. Try deleting the "web" folder in ~/.local/share/Steam/steamapps/compatdata/39210/pfx/drive_c/users/steamuser/My Documents/My Games/FINAL FANTASY XIV - A Realm Reborn/ I have 2 Fedora 29 machines where on one I have to constantly delete that folder for the launcher to load while on the other does not require it. Although, I'm not sure what is different between the two machines — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#580 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/APgQqIDNj5NfLmXrWkWA0EMScT75Ts9Hks5vSePkgaJpZM4WMfqx .

It turns out Steam creates a new My Games folder under SteamPlay. The config file being read was in the new prefix.

ghost commented 5 years ago

The game in the graphic part works flawlessly But the audio gets delayed after a short time (10 min I'd say) and it becomes annoying

You may be able to solve this by opening Properties on the game and set launch options to this:

PULSE_LATENCY_MSEC=60 %command%

It really should just fix crackling, but for lack of other suggestions until FAudio is updated, it's worth a shot?

@Turbito if you clone and build FAudio, then replace the libFAudio.so used by steam with the one you built, the sound is perfect:

https://github.com/FNA-XNA/FAudio

Just build and replace proton's current. If you're on Ubuntu, you'll need the following packages:

* cmake

* libsdl2-dev

* build-essential

I'm currently using one that's slightly older at the moment (https://github.com/FNA-XNA/FAudio/tree/e5c9c20c3a1e24efb35a1eb2156e7d306f94e518), but current master should work as well.

P.S. If you end up running into the problem I described in my previous post, I'd like to know.

I have been playing for about one and half hour and the only graphic issue is that the camera doesn't move as smooth as in a Windows system... It only happens in high desktop graphics configuration. In the standard laptop one the camera works as intended

I just tried but none of these (even at the same time) fix my audio delay... The audio quality is nice, the only problem is the small (but noticeable by 2 or 3 seconds) delay/desync of the sound

edit: I just noticed I copied the library into the lib/ folder... I'm testing into the lib64/

TenaarFeiri commented 5 years ago

Which version of Linux are you running and what's your Proton version? Have you tried activating all xaudio channels with wineconfig for the compatdata pfx as well as xact?

I'm currently running the latest proton beta under Kubuntu 18.10.

ghost commented 5 years ago

Now, copied into the lib64 folder of proton seems to be working without delay. In this half hour I haven't noticed delay. The audio is perfectly synced. Thank you all.

I haven't touch anything into the winecfg of Proton, just copied the lib and set

PULSE_LATENCY_MSEC=60 %command%

into the launch parameters

Using Linux 5.0, Mesa 19.1.0-devel (git-cb4e3e3ef6), xf86-xorg-amdgpu up to day etc. in Proton 3.16-7 beta (not sure If that the number... It's the most recent version that steam client displays)

TenaarFeiri commented 5 years ago

Awesome! I'm glad that fixed it for you! I was looking for the distro actually. My bad, that, I'm still acclimating to the linux world :D Happy gaming!

ghost commented 5 years ago

Awesome! I'm glad that fixed it for you! I was looking for the distro actually. My bad, that, I'm still acclimating to the linux world :D Happy gaming!

Gentoo "testing"? (~amd64). But It should work as well in any other distro I guess.

witcheslive commented 5 years ago

@schives I have experienced this same issue, while it will be choppy without input, input definitely makes it worse. It also seems to take exactly one hour for me. If I restart the game everything works flawlessly again. Please let me know if you come across any workarounds or solutions for this.

witcheslive commented 5 years ago

Attempting to get some documentation of the issue I'm experiencing that seems to be the same as @schives 's where after an hourish it's really jerky and bad. I had to do this with a phone camera unfortunately but it seems to come through a little bit, especially when compared to when it works correctly

After an hourish: https://witches.live/@anna/101786126154372039

Normally: https://witches.live/@anna/101786130006475213

witcheslive commented 5 years ago

followup, it seems to be a consequence of active play. I left the game on all night after only just logging in and chatting a bit and in the morning, the stutter is not there.

witcheslive commented 5 years ago

One more comment to absolutely confirm I have the same thing @schives has, and has documented it better than I have. It does seem to be something related to input, and indeed it seems to be a function almost of how many buttons you press, if you are active and doing questing and instances it seems to come up quicker, meanwhile I didn't have it happen for damn near 18 hours because I left it on overnight to test this and then played very sporadically mostly watching cutscenes, and it only started happening right before I did the new dungeon (thankfully before I went in, heh). I helped some people clear Tsukiyomi normal and it kicked in in the middle of the second part and this is REALLY fun to deal with when you're running out of AOEs and yet input makes everything worse...

It's so bizarre. If you wouldn't mind @schives can we see what is similar about our setups to maybe help pin down the problem?

I'm using gentoo, kernel version 4.19.27-gentoo-r1 I fixed the sound by using this command though I am running the game through the "free trial" option since I have a legacy non-steam account so it's not exactly this number: protontricks 39210 xaudio2_{0,1,2,3,4,5,6,7,8,9}=native

My glxinfo:

anna@eurekapyros ~/.steam/steam/steamapps/common/FINAL FANTASY XIV Online $ glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 1070 Ti/PCIe/SSE2
OpenGL core profile version string: 4.5.0 NVIDIA 418.43
OpenGL core profile shading language version string: 4.50 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 418.43
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 418.43
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

Proton version is 3.16-8 Beta CPU is Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz

witcheslive commented 5 years ago

I have made a twitch clip of this issue happening as I am streaming

https://clips.twitch.tv/CarelessPeacefulAirGuitarYouWHY

Chiitoo commented 5 years ago

When the mouse camera movement thing happens, is it choppy still if using the keyboard to move the camera?

It has been a while since I was in FFX|V, and I don't remember if there are default bindings for the camera, for the keyboard, if it can be done built-in-like, but if it is, has anyone tried that?

Also, does just moving the mouse around (even without moving the camera) make the choppiness happen?

(Apologies if I missed mentions of these things somewhere; I am getting mail on each message under ValveSoftare here, but I may have missed these, and I'm not reading all of these comments right now ^^;).

witcheslive commented 5 years ago

Yes, it does. Any time there is input it gets choppy, whether you use the mouse or keyboard. It's still kiiiinda choppy if you look closely at the animations while you stand still and don't type, but it gets bad again even if you're typing in the chatbox or something. Any sort of input at all seems to make it choppy.

Chiitoo commented 5 years ago

Okay it does not seem like the things I've seen elsewhere, with regards to movements and inputs.

One thing that seems also similar, with this title, is graphics memory running out after a while of playing. All is fine for a time, but then things get crazy...

I'm speaking from the past a little, running the game via Wine, since the very first Alpha to Beta and what ever releases they now have. :]

Point being, I'd pay attention to the graphics memory being used, as it seemed like I was running out of it (memory leaks?). Things went very similar to what I have seen here, after a while, and it matches that you need to actually move around, not just idle).

schives commented 5 years ago

@witcheslive and @Chiitoo It doesn't seem to be VRAM, radeontop shows memory usage is roughly consistent on my RX 580 and never peaks above 3 GB, even while other applications are running. The memory usage is minor, with no obvious memory leaks.

I've even tried removing other pcie cards in case there's some problem there (a bit extreme for debugging), but there was no change.

It really looks like a problem with how either proton or FF14 handles input. By enabling full dxvk HUD, you should be able to see a momentary stutter on the frame-time graph when left-clicking (fraction of a second - the kind of thing you wouldn't normally see). This stutter on left-click is present even before the game goes all stutter-on-all-input-mode.

As far as a little experiment, when the game gets choppy, alt-tab out, disable key repeat using xset r off (this will turn off key repeat in xorg) and start running around using the WASD keys. You'll notice that even if you're holding the key down, as long as you don't move the mouse or push new keys, the game isn't really choppy. To re-enable key repeat, use xset r on.

I have also seen that the time it takes for the game to go choppy seems to be inversely proportional to the number of keys I press.

Things I could think of that might be causing problems:

  1. There could be some sort of data structure acting as a buffer that holds all the keys pressed and needs adjustment (e.g. a stack or queue) in some way when it gets excessively full and isn't flushed. It would make sense that such a data structure needing to move all values over one space might run into a memory bandwidth bottleneck.

  2. It is also possible that the audio fix is at fault.

  3. We both have Intel processors: maybe one of the mitigations for those excessively numerous hardware vulnerabilities is causing problems?

  4. Something could be wrong with how proton is translating the input for FF14.

As far as system specs go, the only thing I see that's similar is our CPU vendor (Intel)...

Detailed specs

OS: Kubuntu 18.04 LTS Proton: 3.16-8 Beta

Kernel ``` $ uname -srvmpio Linux 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ```
CPU ``` $ lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 8 On-line CPU(s) list: 0-7 Thread(s) per core: 2 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 45 Model name: Intel(R) Core(TM) i7-3820 CPU @ 3.60GHz Stepping: 7 CPU MHz: 1200.413 CPU max MHz: 3800.0000 CPU min MHz: 1200.0000 BogoMIPS: 7203.91 Virtualization: VT-x L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 10240K NUMA node0 CPU(s): 0-7 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm epb pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts flush_l1d ```
Memory 4x4GB 11-11-11 DDR3 1 DIMM per channel ``` # lshw -class memory *-memory description: System Memory physical id: 2e slot: System board or motherboard size: 16GiB *-bank:0 description: DIMM DDR3 Synchronous 1600 MHz (0.6 ns) product: F3-1600C9-4GAB vendor: Undefined physical id: 0 serial: 00000000 slot: ChannelA_Dimm1 size: 4GiB width: 64 bits clock: 1600MHz (0.6ns) *-bank:1 description: DIMM Synchronous [empty] product: ChannelA_Dimm2_PartNum vendor: ChannelA_Dimm2_Manufacturer physical id: 1 serial: ChannelA_Dimm2_SerNum slot: ChannelA_Dimm2 width: 64 bits *-bank:2 description: DIMM DDR3 Synchronous 1600 MHz (0.6 ns) product: F3-1600C9-4GAB vendor: Undefined physical id: 2 serial: 00000000 slot: ChannelB_Dimm1 size: 4GiB width: 64 bits clock: 1600MHz (0.6ns) *-bank:3 description: DIMM Synchronous [empty] product: ChannelB_Dimm2_PartNum vendor: ChannelB_Dimm2_Manufacturer physical id: 3 serial: ChannelB_Dimm2_SerNum slot: ChannelB_Dimm2 width: 64 bits *-bank:4 description: DIMM DDR3 Synchronous 1600 MHz (0.6 ns) product: F3-1600C9-4GAB vendor: Undefined physical id: 4 serial: 00000000 slot: ChannelC_Dimm1 size: 4GiB width: 64 bits clock: 1600MHz (0.6ns) *-bank:5 description: DIMM Synchronous [empty] product: ChannelC_Dimm2_PartNum vendor: ChannelC_Dimm2_Manufacturer physical id: 5 serial: ChannelC_Dimm2_SerNum slot: ChannelC_Dimm2 width: 64 bits *-bank:6 description: DIMM DDR3 Synchronous 1600 MHz (0.6 ns) product: F3-1600C9-4GAB vendor: Undefined physical id: 6 serial: 00000000 slot: ChannelD_Dimm1 size: 4GiB width: 64 bits clock: 1600MHz (0.6ns) *-bank:7 description: DIMM Synchronous [empty] product: ChannelD_Dimm2_PartNum vendor: ChannelD_Dimm2_Manufacturer physical id: 7 serial: ChannelD_Dimm2_SerNum slot: ChannelD_Dimm2 width: 64 bits ```
GPU ``` $ vulkaninfo | head -243 =========== VULKAN INFO =========== Vulkan Instance Version: 1.1.70 ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_intel.so: wrong ELF class: ELFCLASS32 ERROR: [Loader Message] Code 0 : /usr/lib/i386-linux-gnu/libvulkan_radeon.so: wrong ELF class: ELFCLASS32 Instance Extensions: ==================== Instance Extensions count = 16 VK_KHR_device_group_creation : extension revision 1 VK_KHR_external_fence_capabilities : extension revision 1 VK_KHR_external_memory_capabilities : extension revision 1 VK_KHR_external_semaphore_capabilities: extension revision 1 VK_KHR_get_physical_device_properties2: extension revision 1 VK_KHR_get_surface_capabilities2 : extension revision 1 VK_KHR_surface : extension revision 25 VK_KHR_wayland_surface : extension revision 6 VK_KHR_xcb_surface : extension revision 6 VK_KHR_xlib_surface : extension revision 6 VK_KHR_display : extension revision 23 VK_EXT_direct_mode_display : extension revision 1 VK_EXT_acquire_xlib_display : extension revision 1 VK_EXT_display_surface_counter : extension revision 1 VK_EXT_debug_report : extension revision 9 VK_EXT_debug_utils : extension revision 1 Layers: count = 5 ======= VK_LAYER_VALVE_steam_fossilize_64 (Steam Pipeline Caching Layer) Vulkan version 1.1.73, layer version 1 Layer Extensions count = 0 Devices count = 1 GPU id : 0 (AMD RADV POLARIS10 (LLVM 8.0.0)) Layer-Device Extensions count = 0 VK_LAYER_VALVE_steam_fossilize_32 (Steam Pipeline Caching Layer) Vulkan version 1.1.73, layer version 1 Layer Extensions count = 0 Devices count = 1 GPU id : 0 (AMD RADV POLARIS10 (LLVM 8.0.0)) Layer-Device Extensions count = 0 VK_LAYER_VALVE_steam_overlay_32 (Steam Overlay Layer) Vulkan version 1.1.73, layer version 1 Layer Extensions count = 0 Devices count = 1 GPU id : 0 (AMD RADV POLARIS10 (LLVM 8.0.0)) Layer-Device Extensions count = 0 VK_LAYER_VALVE_steam_overlay_64 (Steam Overlay Layer) Vulkan version 1.1.73, layer version 1 Layer Extensions count = 0 Devices count = 1 GPU id : 0 (AMD RADV POLARIS10 (LLVM 8.0.0)) Layer-Device Extensions count = 0 VK_LAYER_LUNARG_standard_validation (LunarG Standard Validation Layer) Vulkan version 1.0.70, layer version 1 Layer Extensions count = 0 Devices count = 1 GPU id : 0 (AMD RADV POLARIS10 (LLVM 8.0.0)) Layer-Device Extensions count = 0 Presentable Surfaces: ===================== GPU id : 0 (AMD RADV POLARIS10 (LLVM 8.0.0)) Surface type : VK_KHR_xcb_surface Formats: count = 2 B8G8R8A8_SRGB B8G8R8A8_UNORM Present Modes: count = 3 IMMEDIATE_KHR MAILBOX_KHR FIFO_KHR VkSurfaceCapabilitiesKHR: ========================= minImageCount = 2 maxImageCount = 0 currentExtent: width = 256 height = 256 minImageExtent: width = 256 height = 256 maxImageExtent: width = 256 height = 256 maxImageArrayLayers = 1 supportedTransform: VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR currentTransform: VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR supportedCompositeAlpha: VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR supportedUsageFlags: VK_IMAGE_USAGE_TRANSFER_SRC_BIT VK_IMAGE_USAGE_TRANSFER_DST_BIT VK_IMAGE_USAGE_SAMPLED_BIT VK_IMAGE_USAGE_STORAGE_BIT VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT VkSurfaceCapabilities2EXT: ========================== supportedSurfaceCounters: None Device Properties and Extensions : ================================== GPU0 VkPhysicalDeviceProperties: =========================== apiVersion = 0x40105a (1.1.90) driverVersion = 79691875 (0x4c00063) vendorID = 0x1002 deviceID = 0x67df deviceType = DISCRETE_GPU deviceName = AMD RADV POLARIS10 (LLVM 8.0.0) VkPhysicalDeviceLimits: ----------------------- maxImageDimension1D = 16384 maxImageDimension2D = 16384 maxImageDimension3D = 2048 maxImageDimensionCube = 16384 maxImageArrayLayers = 2048 maxTexelBufferElements = 0x8000000 maxUniformBufferRange = 0xffffffff maxStorageBufferRange = 0xffffffff maxPushConstantsSize = 128 maxMemoryAllocationCount = 4294967295 maxSamplerAllocationCount = 65536 bufferImageGranularity = 0x40 sparseAddressSpaceSize = 0xffffffff maxBoundDescriptorSets = 32 maxPerStageDescriptorSamplers = 9586978 maxPerStageDescriptorUniformBuffers = 9586978 maxPerStageDescriptorStorageBuffers = 9586978 maxPerStageDescriptorSampledImages = 9586978 maxPerStageDescriptorStorageImages = 9586978 maxPerStageDescriptorInputAttachments = 9586978 maxPerStageResources = 9586978 maxDescriptorSetSamplers = 9586978 maxDescriptorSetUniformBuffers = 9586978 maxDescriptorSetUniformBuffersDynamic = 16 maxDescriptorSetStorageBuffers = 9586978 maxDescriptorSetStorageBuffersDynamic = 8 maxDescriptorSetSampledImages = 9586978 maxDescriptorSetStorageImages = 9586978 maxDescriptorSetInputAttachments = 9586978 maxVertexInputAttributes = 32 maxVertexInputBindings = 32 maxVertexInputAttributeOffset = 0x7ff maxVertexInputBindingStride = 0x800 maxVertexOutputComponents = 128 maxTessellationGenerationLevel = 64 maxTessellationPatchSize = 32 maxTessellationControlPerVertexInputComponents = 128 maxTessellationControlPerVertexOutputComponents = 128 maxTessellationControlPerPatchOutputComponents = 120 maxTessellationControlTotalOutputComponents = 4096 maxTessellationEvaluationInputComponents = 128 maxTessellationEvaluationOutputComponents = 128 maxGeometryShaderInvocations = 127 maxGeometryInputComponents = 64 maxGeometryOutputComponents = 128 maxGeometryOutputVertices = 256 maxGeometryTotalOutputComponents = 1024 maxFragmentInputComponents = 128 maxFragmentOutputAttachments = 8 maxFragmentDualSrcAttachments = 1 maxFragmentCombinedOutputResources = 8 maxComputeSharedMemorySize = 0x8000 maxComputeWorkGroupCount[0] = 65535 maxComputeWorkGroupCount[1] = 65535 maxComputeWorkGroupCount[2] = 65535 maxComputeWorkGroupInvocations = 2048 maxComputeWorkGroupSize[0] = 2048 maxComputeWorkGroupSize[1] = 2048 maxComputeWorkGroupSize[2] = 2048 subPixelPrecisionBits = 8 subTexelPrecisionBits = 8 mipmapPrecisionBits = 8 maxDrawIndexedIndexValue = 4294967295 maxDrawIndirectCount = 4294967295 maxSamplerLodBias = 16.000000 maxSamplerAnisotropy = 16.000000 maxViewports = 16 maxViewportDimensions[0] = 16384 maxViewportDimensions[1] = 16384 viewportBoundsRange[0] =-32768.000000 viewportBoundsRange[1] = 32767.000000 viewportSubPixelBits = 8 minMemoryMapAlignment = 4096 minTexelBufferOffsetAlignment = 0x1 minUniformBufferOffsetAlignment = 0x4 minStorageBufferOffsetAlignment = 0x4 minTexelOffset =-32 maxTexelOffset = 31 minTexelGatherOffset =-32 maxTexelGatherOffset = 31 minInterpolationOffset =-2.000000 maxInterpolationOffset = 2.000000 subPixelInterpolationOffsetBits = 8 maxFramebufferWidth = 16384 maxFramebufferHeight = 16384 maxFramebufferLayers = 1024 framebufferColorSampleCounts = 15 framebufferDepthSampleCounts = 15 framebufferStencilSampleCounts = 15 framebufferNoAttachmentsSampleCounts = 15 maxColorAttachments = 8 sampledImageColorSampleCounts = 15 sampledImageDepthSampleCounts = 15 sampledImageStencilSampleCounts = 15 sampledImageIntegerSampleCounts = 1 storageImageSampleCounts = 15 maxSampleMaskWords = 1 timestampComputeAndGraphics = 1 timestampPeriod = 40.000000 maxClipDistances = 8 maxCullDistances = 8 maxCombinedClipAndCullDistances = 8 discreteQueuePriorities = 2 pointSizeRange[0] = 0.000000 pointSizeRange[1] = 8192.000000 lineWidthRange[0] = 0.000000 lineWidthRange[1] = 7.992188 pointSizeGranularity = 0.125000 lineWidthGranularity = 0.007812 strictLines = 0 standardSampleLocations = 1 optimalBufferCopyOffsetAlignment = 0x80 optimalBufferCopyRowPitchAlignment = 0x80 nonCoherentAtomSize = 0x40 VkPhysicalDeviceSparseProperties: --------------------------------- residencyStandard2DBlockShape = 0 residencyStandard2DMultisampleBlockShape = 0 residencyStandard3DBlockShape = 0 residencyAlignedMipSize = 0 residencyNonResidentStrict = 0 ```

PS. @witcheslive if you're using dxvk, the relavant info for debugging is gathered by vulkaninfo, not glxinfo

Edit: added compressed sections for hardware info

witcheslive commented 5 years ago

Extremely corroborating that it seems to have to do with the number of inputs in a session, and it takes about one hour of active play, and doing instances seems to make it happen faster because of so much button pressing. I play with a very active style, jumping around a lot, multihitting buttons to ensure they're queued for GCDs, spinning camera around, so I think that's why the only time I got more than an hour of active playing was when I was doing the new patch MSQ and taking my time watching the cutscenes.

I do wonder if it's something with the audio fix, but without it audio is so bad that I don't even last 10 minutes let alone an hour, heh. But at the same time I know someone (who helped me get this set up) who has nearly identical hardware (same GPU anyway) that DOESN'T have this problem, though they also play a more relaxed style than me so it is hard to say if they're just not hitting it or something too. Only other things I can think of are my primary monitor runs 144hz with a secondary 60 hz monitor, both at different resolutions. I'm using i3 and not a full window manager.

flibitijibibo commented 5 years ago

If the audio library slows down it'll most likely manifest as audio stuttering - the client's interaction with XAudio2 does have some mutexes involved but it's usually per-source and not across the entire API, which I could see causing time losses if there were a few dozen thousand voices (as opposed to the ~32-64 that most games work with).

schives commented 5 years ago

@witcheslive I am running a single 4k (3820x2160) 60Hz monitor. I happen to have the steam overlay disabled in-game (because I use shift-tab as a hotkey). If you have also disabled steam overlay, our problem may be related to https://github.com/ValveSoftware/steam-for-linux/issues/5727.