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!
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!
Login / Register
- UK Government replies to petition about requiring publishers to keep games working
- HELLDIVERS 2 sees over 130K bad reviews on Steam as Sony double down
- Men of War II releases May 15th with Linux support
- Steam PC and Steam Deck Beta released solving Proton 9 download issues
- Sony gives up on forcing PlayStation Network for Helldivers 2
- > See more over 30 days here
-
Bungie's classic free FPS 'Marathon' is now on Steam
- pb -
Bungie's classic free FPS 'Marathon' is now on Steam
- Sparhawk -
SteamOS 3.6 Preview for Steam Deck brings numerous big …
- Liam Dawe -
Bungie's classic free FPS 'Marathon' is now on Steam
- Liam Dawe -
SteamOS 3.6 Preview for Steam Deck brings numerous big …
- satoridepon - > See more comments
Latest Forum Posts
- Hi, i need help with wine read access denied issue.
- talionranger117 - OLED regret
- satoridepon - Livestream announcement
- Talon1024 - [Help] Tale of Two Wastelands mod for Fallout on Linux
- sobinsiril - Anyone know anyone at Google?
- Liam Dawe - See more posts
View PC info
It looks like the FPS are all in the bushes. No really. What helps the most is setting GrassDistanceScale, FoliageDistanceScale and FoliageShadowDistanceScale in my user.settings to almost not existing. Everything else - like setting shadows to minimum, or textures to very low, squeezes mayhap 1 or 2 fps out of it.
GrassDistanceScale=0.01
FoliageDistanceScale=0.01
FoliageShadowDistanceScale=0.1
A real goldmine is https://www.geforce.com/whats-new/guides/the-witcher-3-wild-hunt-graphics-performance-and-tweaking-guide#config-file-tweaks for this. It helps understanding most of the options.
So I guess I finally found my settings that give me ~15 to 18 fps in a crowded place while it's raining and ~25 to 30 fps (max, locked) on a sunny day in the 'woods'. Trees and grass looks like shit but almost everything else can be amped while the game stays responsive to user input :) I guess a faster CPU would help me a lot more.
[users-only]
View cookie preferences.
Accept & Show Accept All & Don't show this again Direct Link
View cookie preferences.
Accept & Show Accept All & Don't show this again Direct Link
I made a short video doodle to demonstrate. Please notice that I had to lower the resolution from 1920x1200 to 1024x768 to record with OBS Studio without to many frame drops. OBS is heavy on the CPU, like Wine, and that kills pretty much any FPS gain again :( It's also responsible for the regular stutter you'll see. These do not happen when OBS is not recording.
View video on youtube.com
(Low grass starts at 1:55)
[/users-only]
View PC info
How many cores do you have?
UPDATE: Ah, I checked your profile - it is Sandy Bridge. That can be indeed a problem.
A faster CPU always helps, but I doubt it solves the problem. I don't expect TW3 to use more than 4 cores and for single core performance a 2600K is still pretty good as well. Has anybody given results with hybrid setups (Ryzen + GTX or i7 + RX)? Anyway, there does appear to be a big bottle neck somewhere. Figuring out what's going on should make for an interesting bit of research.
View PC info
While looking for a bottle neck I moved the game to my SSD just to make sure. Turns out this helped wonders for the crackling sound during the loading screens (the parallax effect animations). Why this affects cracking audio in some loading sequences is beyond me though.
I read a lot today again and learned that my black floor texture is already fixed. I just had to remove the DWORD Direct3D/MaxVersionGL from Wine registry. Sweet. Looks so much better but my FPS dropped again due to new textures o0
Next I used the tool nvidia-smi to check on my GPU Utilisation. It's between 40-50% when TW3 is running. Plents of mem free. So as I guessed: GPU starvation.
[users-only]
So next I did something I dislike due to lack of real knowhow. I've a CPU with unlocked multiplier. Means I can basically choose it's clock signal at will. Also my board features this. I virtually never needed this but it seemed important to me during purchase back then that I'd have the possibility to burn it to crisp as it pleases me.
My CPU is usually really cool at ~40°C. Raising it to 4.2G (just clock multipler, no voltage manipulation) makes it scratch at 64°C which I still consider fine (Tcase is 72.6°C for this model).
Well FPS are still ~20 in crowded areas but this looks _way more nice_ compared to yesterday and it 'feels' better. The keyboard input sure improved a lot and the FPS don't break down that heavy any more.
View cookie preferences.
Accept & Show Accept All & Don't show this again Direct Link
[/users-only]
View PC info
Yes, I tested it with same RX 480 and i7 (4 core / 8 threads, Haswell generation). Still around same 40 fps, except CPU is obviously more used than on 8 core / 16 threads Ryzen.
View PC info
Very detailed you information however needs more powerfull single thread cpu (ryzen have too low single thread*)
*Ryzen overclocked have similar single thread (around 160 points) than my pentium G3258 (since 2014) at 4.1Ghz: 152 points in cinebench R15 single thread
For disgrace wine use higher frecuency and especially high use of first cores: 0-1 (is recommended when use wine send all tasks to other cores: taskset c 1 for example)
However appears some exceptions case truck racer, far cry 3, far cry 3 blood dragon: this titles use core 1 with high demand
As your said higher frecuency when higher ipc can be help in your case, core i7 8600K at 5.0ghz or more** will be usefull in wine dont for core quantity but more for frecuency and high ipc
**This will be stay around 30 to 40% more single performance than ryzen overclocked
Without forget use 720p resolution and lower more powerfull cpu is needed (ryzen fall too much in 720p resolution and lower)
This is some examples at 720p:
View cookie preferences.
Accept & Show Accept All & Don't show this again Direct Link
View cookie preferences.
Accept & Show Accept All & Don't show this again Direct Link
View cookie preferences.
Accept & Show Accept All & Don't show this again Direct Link
Remember this i7 8600K stay at 4.8ghz if you have delid can pass easily 5.0ghz
^_^
View PC info
I think @beko has Sandy Bridge, not Ryzen.
View PC info
Ryzen is for give a idea about single thread wine issue* but 2600K is more slow than ryzen
*Hopefully some day wine use more cores than frecuency but in close future frecuency and higher ipc still needed :(
^_^
View PC info
I posted a bit back, but to refresh I have a Ryzen 7 @3.8GHz and yes it is slower than a stock 8600K/8700K in single core performance.
The weird thing though is that I get consistent ~18-20fps on a GTX 1080 without even having a single CPU core at 100% utilization consistently. It jumps around a lot, looking like stuff is being rescheduled somehow? This is the same with 720p or 1080p, fps not affected at all.
I.e. the game is trying to use more than one thread but something is blocking it on a global level.
To me it doesn't make sense any other way why the scheduler would reschedule a task that is running 100% all the time?
Just feels like, my noob gut feeling, there are some global locks/semaphores somewhere in the wine/nvidia code path somehow? I.e. lots of threads waiting/spin-locking somewhere doing nothing productive (neither CPU nor GPU)?
Again, just a pure guess without having any information on the code in question. :)
I am happy to help out when time permits if you want me to run tests etc?
(away next week though, so after that)
EDIT: using wine-stagin 2.19, console spammed with "fixme:d3d:wined3d_buffer_create Ignoring access flags (pool)."
Thanks,
Anders
More logs:
Spoiler, click me
fixme:d3d_shader:shader_glsl_handle_instruction Backend can't handle opcode dcl_input_ps_sgv.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x800000c2.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x00155543.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x800000c2.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x00155543.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x800000c2.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x00155543.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x800000c2.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x00155543.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x800000c2.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x00155543.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x80000202.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x00155543.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x800000c2.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x00155543.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x800000c2.
fixme:d3d_shader:shader_sm4_read_instruction_modifier Unhandled modifier 0x00155543.
fixme:d3d_shader:print_glsl_info_log Info log received from GLSL shader #944:
fixme:d3d_shader:print_glsl_info_log Vertex info
fixme:d3d_shader:print_glsl_info_log -----------
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[5].w" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[6].w" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[8]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[9]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[10]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[11]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[12]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[13]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[14]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[15]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[16]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[17]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[18]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[19]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[20]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[21]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[22]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[23]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[24]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[25]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[26]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[27]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[28]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[29]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[30]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(23) : warning C7050: "vs_out[31]" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log
fixme:d3d_shader:print_glsl_info_log Fragment info
fixme:d3d_shader:print_glsl_info_log -------------
fixme:d3d_shader:print_glsl_info_log 0(87) : warning C7050: "ps_in[8].yzw" might be used before being initialized
fixme:d3d_shader:print_glsl_info_log 0(41) : warning C7050: "R0.w" might be used before being initialized
<snip>
fixme:module:load_dll Loader redirect from L"wined3d.dll" to L"wined3d-csmt.dll"
err:winediag:wined3d_dll_init Setting maximum allowed wined3d GL version to 4.24576.