[Official] WINE info thread

"
mapcar wrote:
Hi guys, I'm not sure if ACO was mentioned but it seems it can be used already to run PoE, here he does everything live on stream from setup to playing the game : https://www.youtube.com/watch?v=fm_mzPBnWB0


Wow, this looks great. Time for an AMD VGA?
"
sirdond wrote:
"
mapcar wrote:
Hi guys, I'm not sure if ACO was mentioned but it seems it can be used already to run PoE, here he does everything live on stream from setup to playing the game : https://www.youtube.com/watch?v=fm_mzPBnWB0


Wow, this looks great. Time for an AMD VGA?


Most likely! Valve are pushing strong for the ACO and it should only improve in the future. I myself have a laptop with Nvidia so I keep windows, but probably will upgrade to AMD next time.
"
mapcar wrote:
"
sirdond wrote:
"
mapcar wrote:
Hi guys, I'm not sure if ACO was mentioned but it seems it can be used already to run PoE, here he does everything live on stream from setup to playing the game : https://www.youtube.com/watch?v=fm_mzPBnWB0


Wow, this looks great. Time for an AMD VGA?


Most likely! Valve are pushing strong for the ACO and it should only improve in the future. I myself have a laptop with Nvidia so I keep windows, but probably will upgrade to AMD next time.
I don't know, I think that's not the best gameplay example tbh. I'd like to see how it plays normally rather than just running around in a big open area with only a handful of mobs basically doing nothing. Even standing around in an Epilogue instance with dozens of other players just wandering around loaded with MTX would be a better test run than this.

But if it could handle a well-populated map, with the player actually engaging in combat, and dozens if not hundreds of player and mob skill effects firing off all over the place...that would definitely be something.

Sadly there's nothing remotely close to that happening here.
I have a pretty good sense of humor. I'm not German.
"
aggromagnet wrote:

I don't know, I think that's not the best gameplay example tbh. I'd like to see how it plays normally rather than just running around in a big open area with only a handful of mobs basically doing nothing. Even standing around in an Epilogue instance with dozens of other players just wandering around loaded with MTX would be a better test run than this.

But if it could handle a well-populated map, with the player actually engaging in combat, and dozens if not hundreds of player and mob skill effects firing off all over the place...that would definitely be something.

Sadly there's nothing remotely close to that happening here.


Well, let's hope someone will try this in the near future (maybe this weekend). Sadly, I'm on an NV card and none of my colleagues wanted to borrow his/her AMD card for the weekend :)
Last edited by sirdond#1468 on Dec 12, 2019, 4:59:31 PM
ACO seems to improve things a lot. I currently use Proton-4.21-GE-1 with no changes to DXVK and these AUR packages for ACO: https://aur.archlinux.org/packages/lib32-mesa-aco-git/ https://aur.archlinux.org/packages/mesa-aco-git/

I also want to try using fossilize_replay to precache shaders, I haven't got it to run through yet though. Using 4 threads, I hit my RAM limit of 16GB after about half an hour, I'm trying another run with 1 thread, I'm not sure if I have the patience to let it finish though.
FOSSILIZATION

In reference to a Reddit thread (and other posts here):
https://www.reddit.com/r/linux_gaming/comments/cfb5qq/lessening_path_of_exileand_other_steamplay_games/

So after countless hours of messing with TONS of different POE configurations, I had to mess around with this secret Fossilize thing people keep talking about. I am obsessed with testing every way possible to get POE to run better, it's a game in itself! Installing POE on Lutris, WINE or Steam really has no actual difference in performance after or as shaders are compiling, or what environment variables are used aside of maybe RADV_PERFTEST=aco (At least on my system). I tried for tens of hours to *try* and notice subtle differences after applying tweaks, environment variables, new installs, launch options, etc. etc. and I believe it was almost completely my mind playing tricks on me and placebo effect. After POE shaders compile, the game really does work great and smoothly on Linux in any case with any WINE/Proton 4.x or 5.x. I imagine not too long ago this wasn't the case at all. I experimented with WINE 3.x and POE ran pretty bad on that, so at least it seems that the MOST severe issues with gameplay are gone and it's mainly just the shaders nowadays. Since the actual direct problem currently with POE's stuttering is a result of its shaders needing to be compiled for the first time, it is common sense that any real efforts to improve the performance of POE on Linux should be directly focused on this area.

Now, I am running this on an AMD card with Manjaro Linux since everyone said to use AMD videocards with Linux, so I went ahead and blindly got one. I have no idea what to do with Nvidia but I assume most of the steps are identical aside from which drivers one needs. Using shader_build on the default MESA drivers 19.3.4 does not seem to work, no idea why. Before doing any of this with an AMD card, one has to go and compile the mesa-git 20.1.0_devel.120096.286141197da-1 drivers or whatever the newest one will be to get shader_build to run successfully.

Hopefully I am not the only person on the Internet that has realized this or has these problems, but using Fossilize with POE has some very unique quirks, first of all being that when you try to Fossilize using the shader_build command within the Steam Console, it is looking for steam_pipeline_cache.foz and NOT the one that will exist in:

"
/home/(your user)/.steam/steam/steamapps/shadercache/238960/fozpipelinesv4/


With a fresh POE install which is steamapp_pipeline_cache.foz. I don't know if everyone else on the Internet magically gets the other version that the Steam Console is looking for, or if the other version is old info from 6+ months ago that POE used to use. People say that "POE downloads its own cache and you have to restart Steam to get it to initialize". Well no, I played for several hours and restarted Steam 10+ times and only got a steamapp_pipeline_cache.foz that I built by gameplay myself as well as temporary steamapprun_pipeline_cache*** files which were of course, later combined into the larger steamapp_pipeline_cache.foz upon closing POE. Steam does not appear to pre-cache shaders (Still shows 0MB cache after many hours being on and playing), but I have seen on the Internet that people reported ~6 months ago that POE was downloading 1, 2GB+ pre-cached shaders and it was causing a big problem. Maybe this was a thing back then and they stopped because it did no good, I don't know. All I know is that as of today, Steam does not appear to Pre-Cache Shaders for POE on my system.

So, to get a steam_pipeline_cache.foz, there was one way; Just rename steamapp_pipeline_cache.foz to steam_pipeline_cache.foz. I then was able to run the shader_build command. I don't know if this is wrong or whatever and if the two files are completely different, but Fossilization did appear to occur anyway regardless, probably meaning that things are experimental. More on that soon.

Also, I'm pretty new to Linux so I didn't realize a few basic things that I am sure everyone already knows, but hopefully this helps someone out there:

- Running:

"
steam -console


In a Terminal makes the Steam launcher pop up with a new option along the top saying "Console" next to your user name. I didn't realize this and I dumbly was trying to type commands into the (running) Steam process within the Terminal, lol.

- A related Reddit post says to type "shader_build $appid $thread_count" which did not make sense to me as it is not literally what to type. The actual literal command one types into the Console for POE is:

"
shader_build 238960


It will run in multi-process automatically, it used all 8 of my cores to 100% by default just like that with no additional core number arguments needed running FOSSILIZE_REPLAY processes. One can see the progress within the Terminal window used to launch the Steam client.

What this does is populates:

"
/home/(your user)/.steam/steam/steamapps/shadercache/238960/mesa_shader_cache/


Which is where POE on Steam appears to look for cached shaders for use in actual gameplay.

Now, I needed to actually do a couple of experiments and test my results honestly to give insight into anyone out there who may want to try this for themselves and compare. I played through several acts and ran around killing mobs randomly for a little under an hour. The first ~30 MiB of steamapp_pipeline_cache.foz were built rather quickly and the next ~20 MiB built more slowly. This probably indicates that roughly 30 MiB of cached data relates to a large part of the game overall, so if you play up until this point you will generally see less stutters and even less as you play more and more, but with perhaps a lessened return after the first hour of solid random map/act chugging.

I ended up with:

steamapp_pipeline_cache.foz - 52.4 MiB
and a (Mostly) Naturally-Built /mesa_shader_cache/ - 51.4 MiB, 8,793 files; I say (Mostly) because I tried an early test run of shader_build and left the original output alone.

After moving Naturally-Built /mesa_shader_cache/ to a different location, but leaving steamapp_pipeline_cache.foz where it was, I restarted POE and waited 10 minutes in town. /mesa_shader_cache/ only rose to 5.3 MiB - 1,316 files; Most of it happened within the first minute and tiny amounts more as players joined the town area with additional shaders built for them. No background FOSSILIZE_REPLAY processes happened during that time, which means that POE did not appear to utilize steamapp_pipeline_cache.foz to rebuild /mesa_shader_cache/ in any visible way.

After deletion of the new /mesa_shader_cache/ and complete rebuild by renaming steamapp_pipeline_cache.foz (52.4 MiB) to steam_pipeline_cache.foz then running shader_build 238960, /mesa_shader_cache/ rose to 79.3 MiB, 6,120 files.

Upon starting POE with the freshly Fossilized /mesa_shader_cache/, I noticed that the screen with the sitting Greek stone dude when you first log in stuttered in the specific way he always does when there are no precompiled shaders, much to my dismay. After playing for a very stuttery couple of minutes, /mesa_shader_cache/ quickly rose to 84.8 MiB with 8,542 files, almost as if it completely built the roughly 5.3 MiB - 1,316 files that it did with a blank cache, which says to me that POE didn't even want to use the Fossilized shaders at all.

After restoring the old (Mostly) Naturally-Built /mesa_shader_cache/, Greek dude panned to the Exiles smoothly once again and gameplay in the same areas went through previously were mostly without stutter, as expected.

******************************

Update 2/19

Still determined to try and make this work somehow I also tried the other methods of using Fossilize, the first of which was fossilize-git 0.0.0+428.1a5ff351f1-1. As before, this Fossilize version is also looking for steam_pipeline_cache.foz and will not execute on steamapp_pipeline_cache.foz automatically. It must be renamed in all cases.

Adding this to the Steam Launch Options for POE and starting the game:

"
/usr/sbin/fossilize-replay "$(echo "$STEAM_FOSSILIZE_DUMP_PATH_READ_ONLY" | cut -d\; -f1)" #%command%


Using the aforementioned steamapp_pipeline_cache.foz - 52.4 MiB (renamed to steam_pipeline_cache.foz) resulted in a different size /mesa_shader_cache/ of 26.4 MiB - 1,675 files. As with the previous Fossilization attempt, POE does not want to use these Fossilized shaders and begins rebuilding all from scratch with no performance benefits.

That Reddit thread also mentioned the existence of fossilize_replay in "~/.steam/root/ubuntu12_32 and ~/.steam/root/ubuntu12_64." which I attempted to use. Trying these on the Steam Launch Options for POE and starting the game (please note these use an underscore _ instead of the /sbin/ version which uses a hyphen - ):

"
/home/(your user)/.steam/steam/ubuntu12_32/fossilize_replay "$(echo "$STEAM_FOSSILIZE_DUMP_PATH_READ_ONLY" | cut -d\; -f1)" #%command%

"
/home/(your user)/.steam/steam/ubuntu12_64/fossilize_replay "$(echo "$STEAM_FOSSILIZE_DUMP_PATH_READ_ONLY" | cut -d\; -f1)" #%command%


Also resulted in the exact same problem as before with seemingly no acknowledgement from POE of Fossilize's cache output and no performance benefits in either case. Since PathOfExile_x64 is the one executed on Steam, I would not imagine the /ubuntu12_32/fossilize_replay would have been of much use at all anyway.

Using the final option from Valve's Github:

https://github.com/ValveSoftware/Fossilize

After following the instructions and building it with cmake, in the /build/cli/ folder it makes an executable fossilize-replay. Adding this to the launch options does the exact same thing as the fossilize-git 0.0.0+428.1a5ff351f1-1 version with the same /mesa_shader_cache/ output size of 26.4 MiB and no performance benefits.

******************************

At this point, my best educated guess would be that the Fossilization process and steamapp_pipeline_cache.foz itself are all part of an ongoing experimental programming effort by Valve. Maybe at some point in the future this will be useful in some way, but it does not appear so right now at least with my tests. It does not even appear to be able to be used to rebuild a useful /mesa_shader_cache/ for POE, let alone offer any performance benefits at this time with any version or method that currently exists.

The literal fix to the final major issue of POE appears to be the most dreaded of all ... You have to actually play the game to get it to run better!!

******************************
Last edited by Kissykitty#4173 on Feb 19, 2020, 7:38:50 PM
Do you guys also have performance issues?
"
Kissykitty wrote:
Spoiler
FOSSILIZATION

In reference to a Reddit thread (and other posts here):
https://www.reddit.com/r/linux_gaming/comments/cfb5qq/lessening_path_of_exileand_other_steamplay_games/

So after countless hours of messing with TONS of different POE configurations, I had to mess around with this secret Fossilize thing people keep talking about. I am obsessed with testing every way possible to get POE to run better, it's a game in itself! Installing POE on Lutris, WINE or Steam really has no actual difference in performance after or as shaders are compiling, or what environment variables are used aside of maybe RADV_PERFTEST=aco (At least on my system). I tried for tens of hours to *try* and notice subtle differences after applying tweaks, environment variables, new installs, launch options, etc. etc. and I believe it was almost completely my mind playing tricks on me and placebo effect. After POE shaders compile, the game really does work great and smoothly on Linux in any case with any WINE/Proton 4.x or 5.x. I imagine not too long ago this wasn't the case at all. I experimented with WINE 3.x and POE ran pretty bad on that, so at least it seems that the MOST severe issues with gameplay are gone and it's mainly just the shaders nowadays. Since the actual direct problem currently with POE's stuttering is a result of its shaders needing to be compiled for the first time, it is common sense that any real efforts to improve the performance of POE on Linux should be directly focused on this area.

Now, I am running this on an AMD card with Manjaro Linux since everyone said to use AMD videocards with Linux, so I went ahead and blindly got one. I have no idea what to do with Nvidia but I assume most of the steps are identical aside from which drivers one needs. Using shader_build on the default MESA drivers 19.3.4 does not seem to work, no idea why. Before doing any of this with an AMD card, one has to go and compile the mesa-git 20.1.0_devel.120096.286141197da-1 drivers or whatever the newest one will be to get shader_build to run successfully.

Hopefully I am not the only person on the Internet that has realized this or has these problems, but using Fossilize with POE has some very unique quirks, first of all being that when you try to Fossilize using the shader_build command within the Steam Console, it is looking for steam_pipeline_cache.foz and NOT the one that will exist in:

"
/home/(your user)/.steam/steam/steamapps/shadercache/238960/fozpipelinesv4/


With a fresh POE install which is steamapp_pipeline_cache.foz. I don't know if everyone else on the Internet magically gets the other version that the Steam Console is looking for, or if the other version is old info from 6+ months ago that POE used to use. People say that "POE downloads its own cache and you have to restart Steam to get it to initialize". Well no, I played for several hours and restarted Steam 10+ times and only got a steamapp_pipeline_cache.foz that I built by gameplay myself as well as temporary steamapprun_pipeline_cache*** files which were of course, later combined into the larger steamapp_pipeline_cache.foz upon closing POE. Steam does not appear to pre-cache shaders (Still shows 0MB cache after many hours being on and playing), but I have seen on the Internet that people reported ~6 months ago that POE was downloading 1, 2GB+ pre-cached shaders and it was causing a big problem. Maybe this was a thing back then and they stopped because it did no good, I don't know. All I know is that as of today, Steam does not appear to Pre-Cache Shaders for POE on my system.

So, to get a steam_pipeline_cache.foz, there was one way; Just rename steamapp_pipeline_cache.foz to steam_pipeline_cache.foz. I then was able to run the shader_build command. I don't know if this is wrong or whatever and if the two files are completely different, but Fossilization did appear to occur anyway regardless, probably meaning that things are experimental. More on that soon.

Also, I'm pretty new to Linux so I didn't realize a few basic things that I am sure everyone already knows, but hopefully this helps someone out there:

- Running:

"
steam -console


In a Terminal makes the Steam launcher pop up with a new option along the top saying "Console" next to your user name. I didn't realize this and I dumbly was trying to type commands into the (running) Steam process within the Terminal, lol.

- A related Reddit post says to type "shader_build $appid $thread_count" which did not make sense to me as it is not literally what to type. The actual literal command one types into the Console for POE is:

"
shader_build 238960


It will run in multi-process automatically, it used all 8 of my cores to 100% by default just like that with no additional core number arguments needed running FOSSILIZE_REPLAY processes. One can see the progress within the Terminal window used to launch the Steam client.

What this does is populates:

"
/home/(your user)/.steam/steam/steamapps/shadercache/238960/mesa_shader_cache/


Which is where POE on Steam appears to look for cached shaders for use in actual gameplay.

Now, I needed to actually do a couple of experiments and test my results honestly to give insight into anyone out there who may want to try this for themselves and compare. I played through several acts and ran around killing mobs randomly for a little under an hour. The first ~30 MiB of steamapp_pipeline_cache.foz were built rather quickly and the next ~20 MiB built more slowly. This probably indicates that roughly 30 MiB of cached data relates to a large part of the game overall, so if you play up until this point you will generally see less stutters and even less as you play more and more, but with perhaps a lessened return after the first hour of solid random map/act chugging.

I ended up with:

steamapp_pipeline_cache.foz - 52.4 MiB
and a (Mostly) Naturally-Built /mesa_shader_cache/ - 51.4 MiB, 8,793 files; I say (Mostly) because I tried an early test run of shader_build and left the original output alone.

After moving Naturally-Built /mesa_shader_cache/ to a different location, but leaving steamapp_pipeline_cache.foz where it was, I restarted POE and waited 10 minutes in town. /mesa_shader_cache/ only rose to 5.3 MiB - 1,316 files; Most of it happened within the first minute and tiny amounts more as players joined the town area with additional shaders built for them. No background FOSSILIZE_REPLAY processes happened during that time, which means that POE did not appear to utilize steamapp_pipeline_cache.foz to rebuild /mesa_shader_cache/ in any visible way.

After deletion of the new /mesa_shader_cache/ and complete rebuild by renaming steamapp_pipeline_cache.foz (52.4 MiB) to steam_pipeline_cache.foz then running shader_build 238960, /mesa_shader_cache/ rose to 79.3 MiB, 6,120 files.

Upon starting POE with the freshly Fossilized /mesa_shader_cache/, I noticed that the screen with the sitting Greek stone dude when you first log in stuttered in the specific way he always does when there are no precompiled shaders, much to my dismay. After playing for a very stuttery couple of minutes, /mesa_shader_cache/ quickly rose to 84.8 MiB with 8,542 files, almost as if it completely built the roughly 5.3 MiB - 1,316 files that it did with a blank cache, which says to me that POE didn't even want to use the Fossilized shaders at all.

After restoring the old (Mostly) Naturally-Built /mesa_shader_cache/, Greek dude panned to the Exiles smoothly once again and gameplay in the same areas went through previously were mostly without stutter, as expected.

******************************

Update 2/19

Still determined to try and make this work somehow I also tried the other methods of using Fossilize, the first of which was fossilize-git 0.0.0+428.1a5ff351f1-1. As before, this Fossilize version is also looking for steam_pipeline_cache.foz and will not execute on steamapp_pipeline_cache.foz automatically. It must be renamed in all cases.

Adding this to the Steam Launch Options for POE and starting the game:

"
/usr/sbin/fossilize-replay "$(echo "$STEAM_FOSSILIZE_DUMP_PATH_READ_ONLY" | cut -d\; -f1)" #%command%


Using the aforementioned steamapp_pipeline_cache.foz - 52.4 MiB (renamed to steam_pipeline_cache.foz) resulted in a different size /mesa_shader_cache/ of 26.4 MiB - 1,675 files. As with the previous Fossilization attempt, POE does not want to use these Fossilized shaders and begins rebuilding all from scratch with no performance benefits.

That Reddit thread also mentioned the existence of fossilize_replay in "~/.steam/root/ubuntu12_32 and ~/.steam/root/ubuntu12_64." which I attempted to use. Trying these on the Steam Launch Options for POE and starting the game (please note these use an underscore _ instead of the /sbin/ version which uses a hyphen - ):

"
/home/(your user)/.steam/steam/ubuntu12_32/fossilize_replay "$(echo "$STEAM_FOSSILIZE_DUMP_PATH_READ_ONLY" | cut -d\; -f1)" #%command%

"
/home/(your user)/.steam/steam/ubuntu12_64/fossilize_replay "$(echo "$STEAM_FOSSILIZE_DUMP_PATH_READ_ONLY" | cut -d\; -f1)" #%command%


Also resulted in the exact same problem as before with seemingly no acknowledgement from POE of Fossilize's cache output and no performance benefits in either case. Since PathOfExile_x64 is the one executed on Steam, I would not imagine the /ubuntu12_32/fossilize_replay would have been of much use at all anyway.

Using the final option from Valve's Github:

https://github.com/ValveSoftware/Fossilize

After following the instructions and building it with cmake, in the /build/cli/ folder it makes an executable fossilize-replay. Adding this to the launch options does the exact same thing as the fossilize-git 0.0.0+428.1a5ff351f1-1 version with the same /mesa_shader_cache/ output size of 26.4 MiB and no performance benefits.

******************************

At this point, my best educated guess would be that the Fossilization process and steamapp_pipeline_cache.foz itself are all part of an ongoing experimental programming effort by Valve. Maybe at some point in the future this will be useful in some way, but it does not appear so right now at least with my tests. It does not even appear to be able to be used to rebuild a useful /mesa_shader_cache/ for POE, let alone offer any performance benefits at this time with any version or method that currently exists.

The literal fix to the final major issue of POE appears to be the most dreaded of all ... You have to actually play the game to get it to run better!!

******************************

Hey, these are some valiant efforts. I've been using fossilize in nearly the same way since the reddit thread in /r/MMORPG so I feel I should chime in with some things.

steam_pipeline_cache.foz and steamapp_pipeline_cache.foz don't seem to have been updated/released since last year for me, on 9/19 and 11/22 respectively. I didn't rename and use the steamapp variant, just used the one it looked for by default, and it was pretty noticeable.

As of this league, I'm not sure if using fossilize-replay to populate a shader cache actually helps. Well, I genuinely can't tell because the performance is borked on both Linux and Windows.
same name in-game
This latest patch did something nasty, freezes are unbearable now - not that it was smooth to begin with. Looks more and more like early end of the league for me, same as Synthesis...
Same here, things were smooth-ish until this last patch. Now I get second long lags constantly. Damn it. :/

Report Forum Post

Report Account:

Report Type

Additional Info