This file lists some configuration file tweaks, performance tweaks, visual tweaks, and the likes of making your game run better.
Please keep in mind that the minimal specifications also apply for Linux. Do not expect a performance gain compared to Windows native.
Check whether the latest DXVK version is installed in your WINEPREFIX
:
WINEDEBUG
(no -all
!) and check the (terminal) outputoutput_log.txt
in users\??\AppData\*
, search for DXVK
Setup instructions: TROUBLESHOOTING.md
Esync will sometimes work faster than Fsync on some specific game/machine combinations (see here).
Please note that the official Wine builds do not come with Esync support. One of the following builds is required:
Lutris:
Proton:
wine-staging or custom build:
export WINEESYNC=1
to your script prior to launching the gameIf you have access to the terminal output (or logs),
look out for Esync
mentions to confirm that it's working.
nvidia-smi
/nvtop
(nVIDIA), radeontop
(AMD)zfgamebrowser.exe
to free approx. 150 MBdxvk.conf
where GenshinImpact.exe
resides. Example options for vsync-less (mailbox mode), tearing-free, low latency gameplay:# Change to False on NVIDIA GPUs
dxgi.nvapiHack = True
# Change to 3 for triple buffering (improves performance at the cost of latency)
dxgi.numBackBuffers = 2
dxgi.syncInterval = 0
dxgi.tearFree = True
# More performance
d3d11.constantBufferRangeCheck = False
d3d11.relaxedBarriers = True
d3d11.invariantPosition = False
d3d11.zeroWorkgroupMemory = False
This is an optimization for installations on a slow drive. You may make Linux' file caching to RAM more aggressive in order reduce loading times for repetitive actions.
etc/sysctl.conf
with an editor like nano
with sudo.vm.vfs_cache_pressure = 10
. Save and exit.sudo sysctl -p
to reload the kernel configuration.DXVK_HUD
to fps,frametimes
vkBasalt offers cool shaders and re-shade-like features.
vkBasalt.conf
in the directory where GenshinImpact.exe
resides.#effects is a colon seperated list of effect to use
#e.g.: effects = fxaa:cas
#effects will be run in order from left to right
#one effect can be run multiple times e.g. smaa:smaa:cas
#cas - Contrast Adaptive Sharpening
#dls - Denoised Luma Sharpening
#fxaa - Fast Approximate Anti-Aliasing
#smaa - Enhanced Subpixel Morphological Antialiasing
#lut - Color LookUp Table
# Note: smaa will make in-game text blurry. If you don't mind losing some crispness
# from the image, remove smaa from here and use the in-game antialiasing.
# In-game SMAA and TAA are really blurry, so make sure to turn up casSharpness to
# something like 0.7
effects = cas:smaa
reshadeTexturePath = "/usr/share/reshade/textures"
reshadeIncludePath = "/usr/share/reshade/shaders"
depthCapture = off
#toggleKey toggles the effects on/off
toggleKey = Home
#casSharpness specifies the amount of sharpning in the CAS shader.
#0.0 less sharp, less artefacts, but not off
#1.0 maximum sharp more artefacts
#Everything in between is possible
#negative values sharpen even less, up to -1.0 make a visible difference
casSharpness = 0.3
#dlsSharpness specifies the amount of sharpening in the Denoised Luma Sharpening shader.
#Increase to sharpen details within the image.
#0.0 less sharp, less artefacts, but not off
#1.0 maximum sharp more artefacts
dlsSharpness = 0.2
#dlsDenoise specifies the amount of denoising in the Denoised Luma Sharpening shader.
#Increase to limit how intensely film grain within the image gets sharpened.
#0.0 min
#1.0 max
dlsDenoise = 0.2
#fxaaQualitySubpix can effect sharpness.
#1.00 - upper limit (softer)
#0.75 - default amount of filtering
#0.50 - lower limit (sharper, less sub-pixel aliasing removal)
#0.25 - almost off
#0.00 - completely off
fxaaQualitySubpix = 0.75
#fxaaQualityEdgeThreshold is the minimum amount of local contrast required to apply algorithm.
#0.333 - too little (faster)
#0.250 - low quality
#0.166 - default
#0.125 - high quality
#0.063 - overkill (slower)
fxaaQualityEdgeThreshold = 0.125
#fxaaQualityEdgeThresholdMin trims the algorithm from processing darks.
#0.0833 - upper limit (default, the start of visible unfiltered edges)
#0.0625 - high quality (faster)
#0.0312 - visible limit (slower)
#Special notes: due to the current implementation you
#Likely want to set this to zero.
#As colors that are mostly not-green
#will appear very dark in the green channel!
#Tune by looking at mostly non-green content,
#then start at zero and increase until aliasing is a problem.
fxaaQualityEdgeThresholdMin = 0.0312
#smaaEdgeDetection changes the edge detection shader
#luma - default
#color - might catch more edges, but is more expensive
smaaEdgeDetection = luma
#smaaThreshold specifies the threshold or sensitivity to edges
#Lowering this value you will be able to detect more edges at the expense of performance.
#Range: [0, 0.5]
#0.1 is a reasonable value, and allows to catch most visible edges.
#0.05 is a rather overkill value, that allows to catch 'em all.
smaaThreshold = 0.2
#smaaMaxSearchSteps specifies the maximum steps performed in the horizontal/vertical pattern searches
#Range: [0, 112]
#4 - low
#8 - medium
#16 - high
#32 - ultra
smaaMaxSearchSteps = 8
#smaaMaxSearchStepsDiag specifies the maximum steps performed in the diagonal pattern searches
#Range: [0, 20]
#0 - low, medium
#8 - high
#16 - ultra
smaaMaxSearchStepsDiag = 6
#smaaCornerRounding specifies how much sharp corners will be rounded
#Range: [0, 100]
#25 is a reasonable value
smaaCornerRounding = 80
#lutFile is the path to the LUT file that will be used
#supported are .CUBE files and .png with width == height * height
lutFile = "/path/to/lut"
See original vkBasalt.conf
for comparison.