Compare commits

...

21 commits

Author SHA1 Message Date
Pierre-Loup A. Griffais
aa2dcc0df3
Delete PREREQS.md 2018-10-16 17:24:43 -07:00
Pierre-Loup A. Griffais
4ea6ab9cdf
Delete CHANGELOG.md 2018-10-16 17:24:35 -07:00
Pierre-Loup A. Griffais
bb5974334d
Update CHANGELOG.md 2018-10-13 07:58:25 -07:00
Pierre-Loup A. Griffais
1f0d2623fe
Update CHANGELOG.md 2018-10-12 17:22:13 -07:00
Andrew Eikum
8c13701933 Merge remote-tracking branch 'github/proton_3.7' into proton_3.7 2018-10-11 07:17:18 -05:00
Pierre-Loup A. Griffais
4118729474
Update CHANGELOG.md 2018-10-10 18:55:09 -07:00
Andrew Eikum
1997effc66 update wine 2018-10-10 08:34:00 -05:00
Andrew Eikum
dff92b79a6 proton: Track prefix files 2018-10-10 08:34:00 -05:00
Pierre-Loup A. Griffais
77ddc97f5e
Update PREREQS.md 2018-10-05 18:15:00 -07:00
Pierre-Loup A. Griffais
98b65606d2
Update PREREQS.md 2018-10-04 20:24:57 -07:00
Pierre-Loup A. Griffais
cdc78e2e04
Merge pull request #1693 from lostgoat/proton_3.7
Update driver requirements for AMD VR use cases
2018-10-04 23:49:14 +02:00
Andres Rodriguez
23069ee4ad Update driver requirements for AMD VR use cases
Point at the SteamVR-for-Linux github for the requirements.
2018-10-04 15:54:28 -04:00
Pierre-Loup A. Griffais
e9b4e92383
Update PREREQS.md 2018-10-04 10:48:32 -07:00
Pierre-Loup A. Griffais
76d9d9bfe4
Update PREREQS.md 2018-10-04 10:42:32 -07:00
Pierre-Loup A. Griffais
1d315dc535
Update README.md 2018-09-30 19:52:16 -07:00
Andrew Eikum
da7a243463 update dxvk 2018-09-28 10:41:22 -05:00
Pierre-Loup A. Griffais
4d9161f15b
Update CHANGELOG.md 2018-09-28 16:52:31 +02:00
Andrew Eikum
197e65dbe2 update dxvk to v0.80 2018-09-27 08:19:51 -05:00
Andrew Eikum
8a4dd4c2e3 update wine 2018-09-27 08:19:41 -05:00
Andrew Eikum
4485870f77 update dxvk to v0.72 2018-09-26 09:10:50 -05:00
Andrew Eikum
c249cdb50e update wine 2018-09-26 09:10:50 -05:00
8 changed files with 1933 additions and 82 deletions

View file

@ -1,27 +0,0 @@
## Available in Proton 3.7:
###### 3.7-6:
- Fix failure to start VR games.
- Improvements to fullscreen games running at non-native resolutions.
- Compatibility fix for games that use Steam integration.
- Return to previous D3D10 behavior in DXVK to allow games to fallback to D3D9.
###### 3.7-5:
- Performance improvements for timing APIs in CPU-limited scenarios
- Automatically capture mouse in fullscreen windows is enabled by default.
- More display ratios have smaller resolutions available.
- Fix a crash on old versions of SDL.
- Fix for mouse cursor drifting in Deus Ex.
- Debug script dump directory can be configured with `PROTON_DEBUG_DIR`.
- Further improvements to fullscreen focus and python3 compatibility.
###### 3.7-4:
- Support python3 as well as python2. This removes the requirement for python2 to be installed.
- DXVK updated to v0.70, view that changelog here: https://github.com/doitsujin/dxvk/releases DXVK's DX10 support is not yet enabled.
- Fullscreen games should more consistently gain keyboard focus on Ubuntu with gnome-shell. This can also help with games that auto-minimize on launch.
- Some useful default logging can be enabled with `PROTON_LOG=1 %command%` in the Steam game launch options. Logs will be dumped to $HOME/steam-$APPID.log. WINEDEBUG can still be set in user_settings.py for more extensive debugging.
- Debug scripts are no longer dumped to /tmp/ by default. They must now be enabled with `PROTON_DUMP_DEBUG_COMMANDS=1 %command%` in the Steam game launch options. They have also been moved to /tmp/proton_$USER/.
- Controllers will hopefully no longer cause long delays on startup on some systems (winehq bug 45084).
###### 3.7-3:
- Fixed missing 32-bit libraries
###### 3.7-2:
- Fixed debug DXVK
###### 3.7-1:
- Initial release

View file

@ -1,50 +0,0 @@
# GRAPHICS DRIVERS QUICKSTART - UBUNTU 18.04
Some of the newest titles available on Linux with Steam Play require cutting-edge drivers that are not distributed with the latest Ubuntu 18.04 release. To achieve the highest level of compatibility with Windows game titles, we recommend installing the following drivers:
## NVIDIA
Linux users with NVIDIA graphics cards should install the latest NVIDIA proprietary drivers; version 396.54 is required. They can be installed directly from Canonical's repository for third-party drivers:
```
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt install nvidia-driver-396
```
Provide your user password when requested and reboot after the last command completes to ensure the driver has updated correctly.  
Further details about this PPA repository are available here:
https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa
## AMD/Intel
Linux users with AMD or Intel graphics cards should install recent versions of Mesa and LLVM through this repository: https://launchpad.net/~paulo-miguel-dias/+archive/ubuntu/mesa
```
sudo add-apt-repository ppa:paulo-miguel-dias/mesa
sudo apt dist-upgrade
sudo apt install mesa-vulkan-drivers mesa-vulkan-drivers:i386
```
Provide your user password when requested and reboot after the last command completes to ensure the driver has updated correctly.
In addition, AMD users that want to play VR games should also add this repository: https://launchpad.net/~kisak/+archive/ubuntu/steamvr4pk
```
sudo add-apt-repository ppa:kisak/steamvr4pk
sudo apt dist-upgrade
sudo apt install linux-generic-steamvr-18.04
```
VR is not currently supported on Intel graphics.
# GRAPHICS DRIVERS REQUIREMENTS - GENERAL
## DirectX 11 games:
You will need NVIDIA 396.54 or Mesa 18.1.x at a minimum. LLVM7 or above is recommended to play DX11 games without GPU hangs.
## Core OpenGL games (DOOM 2016, Google Earth VR, etc):
You will need Mesa 18.2.0 at a minimum.
# FD LIMIT REQUIREMENTS
Proton uses the 'esync' patchset for performance improvements in multi-threaded games. It can require a higher File Descriptor limit per process than what it set up by default in some distributions. If you're not running Ubuntu, SteamOS or Debian, please follow the instructions over at https://github.com/zfigura/wine/blob/esync/README.esync to increase your FD limit.

View file

@ -13,7 +13,7 @@ a particular title.
--- ---
Getting Started with Proton from Steam Play Getting Started with Proton from Steam Play
--- ---
* As the new Steam Play is still in Beta, it is recommended that you opt into the [Steam Client Beta](https://steamcommunity.com/sharedfiles/filedetails/?id=182912431) for the latest features and fixes.
* Proton requires graphics drivers that are more recent than what is typically packaged in most distributions; please read the [list of requirements and quickstart for Ubuntu 18.04 users](https://github.com/ValveSoftware/Proton/blob/proton_3.7/PREREQS.md) * Proton requires graphics drivers that are more recent than what is typically packaged in most distributions; please read the [list of requirements and quickstart for Ubuntu 18.04 users](https://github.com/ValveSoftware/Proton/blob/proton_3.7/PREREQS.md)
* Install and play games! Please refer to [this post](https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561) for more information. * Install and play games! Please refer to [this post](https://steamcommunity.com/games/221410/announcements/detail/1696055855739350561) for more information.

View file

@ -673,6 +673,7 @@ if [ "$PACKAGE" = true ]; then
cp -a toolmanifest.vdf dist/ cp -a toolmanifest.vdf dist/
cp -a filelock.py dist/ cp -a filelock.py dist/
cp -a user_settings.sample.py dist/ cp -a user_settings.sample.py dist/
cp -a proton_3.7_tracked_files dist/
if [ "$PLATFORM" == "Darwin" ]; then if [ "$PLATFORM" == "Darwin" ]; then
cp -a dist.LICENSE.osx dist/LICENSE cp -a dist.LICENSE.osx dist/LICENSE
sed -e 's/@PYTHON_NAME@/python/' proton.in > dist/proton sed -e 's/@PYTHON_NAME@/python/' proton.in > dist/proton

2
dxvk

@ -1 +1 @@
Subproject commit 07b4d3cbe554f6cbf2484fc6cd4ab54b0f90a592 Subproject commit ee8b469eff282f497fd6dae6e46dad5c8ac89b6a

View file

@ -31,6 +31,30 @@ def log(msg):
sys.stderr.write(PFX + msg + os.linesep) sys.stderr.write(PFX + msg + os.linesep)
sys.stderr.flush() sys.stderr.flush()
def remove_tracked_files(prefix):
if not os.path.exists(prefix + "/tracked_files"):
log("Prefix has no tracked_files??")
return
with open(prefix + "/tracked_files", "r") as tracked_files:
dirs = []
for f in tracked_files:
path = prefix + "/pfx/" + f.strip()
if os.path.exists(path):
if os.path.isfile(path) or os.path.islink(path):
os.remove(path)
else:
dirs.append(path)
for d in dirs:
try:
os.rmdir(d)
except OSError:
#not empty
pass
os.remove(prefix + "/tracked_files")
os.remove(prefix + "/version")
def upgrade_pfx(old_ver): def upgrade_pfx(old_ver):
if old_ver == CURRENT_PREFIX_VERSION: if old_ver == CURRENT_PREFIX_VERSION:
return return
@ -41,6 +65,15 @@ def upgrade_pfx(old_ver):
return return
old_proton_ver, old_prefix_ver = old_ver.split('-') old_proton_ver, old_prefix_ver = old_ver.split('-')
new_proton_ver, new_prefix_ver = CURRENT_PREFIX_VERSION.split('-')
if old_proton_ver != new_proton_ver:
log("Removing old prefix")
if old_proton_ver == "3.7" and not os.path.exists(os.environ["STEAM_COMPAT_DATA_PATH"] + "/tracked_files"):
#proton 3.7 did not generate tracked_files, so copy it into place first
shutil.copy(basedir + "/proton_3.7_tracked_files", os.environ["STEAM_COMPAT_DATA_PATH"] + "/tracked_files")
remove_tracked_files(os.environ["STEAM_COMPAT_DATA_PATH"])
return
if old_proton_ver == "3.7" and old_prefix_ver == "1": if old_proton_ver == "3.7" and old_prefix_ver == "1":
if not os.path.exists(prefix + "/drive_c/windows/syswow64/kernel32.dll"): if not os.path.exists(prefix + "/drive_c/windows/syswow64/kernel32.dll"):
@ -64,11 +97,15 @@ def real_copy(src, dst):
else: else:
shutil.copy(src,dst) shutil.copy(src,dst)
def mergedirs(src, dst): def mergedirs(src, dst, tracked_files):
for src_dir, dirs, files in os.walk(src): for src_dir, dirs, files in os.walk(src):
rel_dir = src_dir.replace(src, "", 1).lstrip('/')
if len(rel_dir) > 0:
rel_dir = rel_dir + "/"
dst_dir = src_dir.replace(src, dst, 1) dst_dir = src_dir.replace(src, dst, 1)
if not os.path.exists(dst_dir): if not os.path.exists(dst_dir):
os.makedirs(dst_dir) os.makedirs(dst_dir)
tracked_files.write(rel_dir + "\n")
for dir_ in dirs: for dir_ in dirs:
src_file = os.path.join(src_dir, dir_) src_file = os.path.join(src_dir, dir_)
dst_file = os.path.join(dst_dir, dir_) dst_file = os.path.join(dst_dir, dir_)
@ -79,6 +116,7 @@ def mergedirs(src, dst):
dst_file = os.path.join(dst_dir, file_) dst_file = os.path.join(dst_dir, file_)
if not os.path.exists(dst_file): if not os.path.exists(dst_file):
real_copy(src_file, dst_file) real_copy(src_file, dst_file)
tracked_files.write(rel_dir + file_ + "\n")
if not ("STEAM_COMPAT_DATA_PATH" in os.environ): if not ("STEAM_COMPAT_DATA_PATH" in os.environ):
log("No compat data path?") log("No compat data path?")
@ -188,7 +226,8 @@ with prefix_lock:
if not os.path.exists(prefix + "/user.reg"): if not os.path.exists(prefix + "/user.reg"):
#copy default prefix into place #copy default prefix into place
mergedirs(basedir + "/dist/share/default_pfx", prefix) mergedirs(basedir + "/dist/share/default_pfx", prefix,
open(os.environ["STEAM_COMPAT_DATA_PATH"] + "/tracked_files", "w"))
with open(version_file, "w") as f: with open(version_file, "w") as f:
f.write(CURRENT_PREFIX_VERSION + "\n") f.write(CURRENT_PREFIX_VERSION + "\n")

1888
proton_3.7_tracked_files Normal file

File diff suppressed because it is too large Load diff

2
wine

@ -1 +1 @@
Subproject commit 49a8417740dce73032a0b26a3b10595289d9ba1e Subproject commit bc589fdadee8d015ac36931a712cb645fcb32395