Merge branch 'proton_3.16-next' into proton_3.16

This commit is contained in:
Andrew Eikum 2018-10-16 10:56:07 -05:00
commit c8d12e78a7
8 changed files with 107 additions and 87 deletions

View File

@ -1,7 +1,16 @@
## Available in Proton 3.7 Beta: ## Available in Proton 3.16 Beta:
###### 3.16-1:
- Rebased Proton patches onto Wine 3.16.
- Updated Vulkan support in Wine to 1.1.86, plus support for transform feedback.
- DXVK has been updated to [0.81](https://github.com/doitsujin/dxvk/releases/tag/v0.81) plus support for transform feedback which should fix missing models in many D3D11 games. *Transform feedback requires using Mesa git or NVIDIA's 396.54.09 Vulkan Beta driver*.
- DXVK's d3d10 mode is now enabled by default.
- DXVK is now built as a native Linux library, which may give a small performance boost, and should make debugging easier for DXVK and driver developers.
- Missing textures for models in some VR games has been resolved.
- Ask the window manager to bypass the compositor in fullscreen mode. This may improve performance in some situations.
- All new makefile-based build system.
## Available in Proton 3.7:
###### 3.7-8: ###### 3.7-8:
- Minor compatibility fixes in preparation for future Proton versions. - Minor compatibility fixes in preparation for future Proton versions.
## Available in Proton 3.7:
###### 3.7-7: ###### 3.7-7:
- Improvements to alt-tab and fullscreen behavior in many games. - Improvements to alt-tab and fullscreen behavior in many games.
- Fix mouse behavior in some games and mice with high sample rates. - Fix mouse behavior in some games and mice with high sample rates.

View File

@ -68,7 +68,7 @@ which can have [security
implications](https://docs.docker.com/engine/security/security/). implications](https://docs.docker.com/engine/security/security/).
Starting from a stock Debian 9 installation, you will need to install the Starting from a stock Debian 9 installation, you will need to install the
`gpgv2`, `gnupg2`, `g++`, and `g++-6-multilib` packages from the `gpgv2`, `gnupg2`, `g++`, `g++-6-multilib`, and `mingw-w64` packages from the
Debian repos. You will also need to install `meson` version 0.43 or later, Debian repos. You will also need to install `meson` version 0.43 or later,
which can be [acquired from backports](https://backports.debian.org/Instructions/). Next, which can be [acquired from backports](https://backports.debian.org/Instructions/). Next,
[install Docker-CE from the official Docker repositories](https://docs.docker.com/install/linux/docker-ce/debian/). [install Docker-CE from the official Docker repositories](https://docs.docker.com/install/linux/docker-ce/debian/).
@ -78,6 +78,13 @@ This will pull in all of the dependencies required to run wine. You can then
(and we do) uninstall the `winehq-devel` package in order to ensure that a (and we do) uninstall the `winehq-devel` package in order to ensure that a
system Wine installation does not interfere with your build process. system Wine installation does not interfere with your build process.
DXVK requires that we choose the posix alternative for the mingw-w64 compilers:
sudo update-alternatives --set x86_64-w64-mingw32-gcc `which x86_64-w64-mingw32-gcc-posix`
sudo update-alternatives --set x86_64-w64-mingw32-g++ `which x86_64-w64-mingw32-g++-posix`
sudo update-alternatives --set i686-w64-mingw32-gcc `which i686-w64-mingw32-gcc-posix`
sudo update-alternatives --set i686-w64-mingw32-g++ `which i686-w64-mingw32-g++-posix`
Next we set up the Steam runtime build environments. Here we use the Next we set up the Steam runtime build environments. Here we use the
`wip-docker` branch to get access to the Docker images. `wip-docker` branch to get access to the Docker images.
@ -174,7 +181,7 @@ the Wine prefix. Removing the option will revert to the previous behavior.
| | <tt>PROTON_LOG</tt> | Convenience method for dumping a useful debug log to `$HOME/steam-$APPID.log`. For more thorough logging, use `user_settings.py`. | | | <tt>PROTON_LOG</tt> | Convenience method for dumping a useful debug log to `$HOME/steam-$APPID.log`. For more thorough logging, use `user_settings.py`. |
| | <tt>PROTON_DUMP_DEBUG_COMMANDS</tt> | When running a game, Proton will write some useful debug scripts for that game into `$PROTON_DEBUG_DIR/proton_$USER/`. | | | <tt>PROTON_DUMP_DEBUG_COMMANDS</tt> | When running a game, Proton will write some useful debug scripts for that game into `$PROTON_DEBUG_DIR/proton_$USER/`. |
| | <tt>PROTON_DEBUG_DIR<tt> | Root directory for the Proton debug scripts, `/tmp` by default. | | | <tt>PROTON_DEBUG_DIR<tt> | Root directory for the Proton debug scripts, `/tmp` by default. |
| <tt>wined3d11</tt> | <tt>PROTON_USE_WINED3D11</tt> | Use OpenGL-based wined3d instead of Vulkan-based DXVK for d3d11. | | <tt>wined3d</tt> | <tt>PROTON_USE_WINED3D</tt> | Use OpenGL-based wined3d instead of Vulkan-based DXVK for d3d11 and d3d10. This used to be called `PROTON_USE_WINED3D11`, which is now an alias for this same option. |
| <tt>nod3d11</tt> | <tt>PROTON_NO_D3D11</tt> | Disable <tt>d3d11.dll</tt>, for games which can fall back to and run better with d3d9. | | <tt>nod3d11</tt> | <tt>PROTON_NO_D3D11</tt> | Disable <tt>d3d11.dll</tt>, for games which can fall back to and run better with d3d9. |
| <tt>noesync</tt> | <tt>PROTON_NO_ESYNC</tt> | Do not use eventfd-based in-process synchronization primitives. | | <tt>noesync</tt> | <tt>PROTON_NO_ESYNC</tt> | Do not use eventfd-based in-process synchronization primitives. |

View File

@ -230,8 +230,8 @@ STEAM_DIR := $(HOME)/.steam/root
DIST_COPY_FILES := toolmanifest.vdf filelock.py proton proton_3.7_tracked_files user_settings.sample.py DIST_COPY_FILES := toolmanifest.vdf filelock.py proton proton_3.7_tracked_files user_settings.sample.py
DIST_COPY_TARGETS := $(addprefix $(DST_BASE)/,$(DIST_COPY_FILES)) DIST_COPY_TARGETS := $(addprefix $(DST_BASE)/,$(DIST_COPY_FILES))
DIST_VERSION := $(DST_DIR)/version DIST_VERSION := $(DST_DIR)/version
DIST_OVR32 := $(DST_DIR)/lib/openvr_api_dxvk.so DIST_OVR32 := $(DST_DIR)/lib/wine/dxvk/openvr_api_dxvk.dll
DIST_OVR64 := $(DST_DIR)/lib64/openvr_api_dxvk.so DIST_OVR64 := $(DST_DIR)/lib64/wine/dxvk/openvr_api_dxvk.dll
DIST_PREFIX := $(DST_DIR)/share/default_pfx/ DIST_PREFIX := $(DST_DIR)/share/default_pfx/
DIST_COMPAT_MANIFEST := $(DST_BASE)/compatibilitytool.vdf DIST_COMPAT_MANIFEST := $(DST_BASE)/compatibilitytool.vdf
DIST_LICENSE := $(DST_BASE)/LICENSE DIST_LICENSE := $(DST_BASE)/LICENSE
@ -247,12 +247,12 @@ DEPLOY_COPY_TARGETS := $(DIST_COPY_TARGETS) $(DIST_VERSION) $(DIST_LICENSE)
$(DIST_LICENSE): $(LICENSE) $(DIST_LICENSE): $(LICENSE)
cp -a $< $@ cp -a $< $@
$(DIST_OVR32): $(SRCDIR)/openvr/bin/linux32/libopenvr_api.so | $(DST_DIR) $(DIST_OVR32): $(SRCDIR)/openvr/bin/win32/openvr_api.dll | $(DST_DIR)
mkdir -p $(DST_DIR)/lib/ mkdir -p $(DST_DIR)/lib/wine/dxvk
cp -a $< $@ cp -a $< $@
$(DIST_OVR64): $(SRCDIR)/openvr/bin/linux64/libopenvr_api.so | $(DST_DIR) $(DIST_OVR64): $(SRCDIR)/openvr/bin/win64/openvr_api.dll | $(DST_DIR)
mkdir -p $(DST_DIR)/lib64/ mkdir -p $(DST_DIR)/lib64/wine/dxvk
cp -a $< $@ cp -a $< $@
$(DIST_COPY_TARGETS): | $(DST_DIR) $(DIST_COPY_TARGETS): | $(DST_DIR)
@ -831,24 +831,22 @@ DXVK_CONFIGURE_FILES32 := $(DXVK_OBJ32)/build.ninja
DXVK_CONFIGURE_FILES64 := $(DXVK_OBJ64)/build.ninja DXVK_CONFIGURE_FILES64 := $(DXVK_OBJ64)/build.ninja
# 64bit-configure # 64bit-configure
# the sed junk is to work around meson being unable to pass linker args to $(DXVK_CONFIGURE_FILES64): $(MAKEFILE_DEP) | $(DXVK_OBJ64)
# cross-file builds.
$(DXVK_CONFIGURE_FILES64): $(MAKEFILE_DEP) $(WINE_BUILDTOOLS64) | $(DXVK_OBJ64)
cd "$(DXVK)" && \ cd "$(DXVK)" && \
sed -e "s|@PROTON_C_LINK_ARGS@|'-L$(abspath $(TOOLS_DIR64))/lib64', '-L$(abspath $(TOOLS_DIR64))/lib64/wine'|" \ PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" \
-e "s|@PROTON_C_ARGS@|'-I$(abspath $(TOOLS_DIR64))/include', '-I$(abspath $(TOOLS_DIR64))/include/wine', '-I$(abspath $(TOOLS_DIR64))/include/wine/windows'|" \ meson --prefix="$(abspath $(DXVK_OBJ64))" --cross-file build-win64.txt "$(abspath $(DXVK_OBJ64))"
< build-wine64.txt > proton-build-wine64.txt && \
PATH="$(abspath $(SRCDIR))/glslang/bin/:$(abspath $(TOOLS_DIR64))/bin/:$(PATH)" \ cd "$(DXVK_OBJ64)" && \
meson --libdir=lib/ --prefix="$(abspath $(DXVK_OBJ64))" --cross-file proton-build-wine64.txt --buildtype=release "$(abspath $(DXVK_OBJ64))" PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" meson configure -Dbuildtype=release
# 32-bit configure # 32-bit configure
$(DXVK_CONFIGURE_FILES32): $(MAKEFILE_DEP) $(WINE_BUILDTOOLS32) | $(DXVK_OBJ32) $(DXVK_CONFIGURE_FILES32): $(MAKEFILE_DEP) | $(DXVK_OBJ32)
cd "$(DXVK)" && \ cd "$(DXVK)" && \
sed -e "s|@PROTON_C_LINK_ARGS@|'-L$(abspath $(TOOLS_DIR32))/lib', '-L$(abspath $(TOOLS_DIR32))/lib/wine'|" \ PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" \
-e "s|@PROTON_C_ARGS@|'-I$(abspath $(TOOLS_DIR32))/include', '-I$(abspath $(TOOLS_DIR32))/include/wine', '-I$(abspath $(TOOLS_DIR32))/include/wine/windows'|" \ meson --prefix="$(abspath $(DXVK_OBJ32))" --cross-file build-win32.txt "$(abspath $(DXVK_OBJ32))"
< build-wine32.txt > proton-build-wine32.txt && \
PATH="$(abspath $(SRCDIR))/glslang/bin/:$(abspath $(TOOLS_DIR32))/bin/:$(PATH)" \ cd "$(DXVK_OBJ32)" && \
meson --libdir=lib/ --prefix="$(abspath $(DXVK_OBJ32))" --cross-file proton-build-wine32.txt --buildtype=release "$(abspath $(DXVK_OBJ32))" PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" meson configure -Dbuildtype=release
## dxvk goals ## dxvk goals
DXVK_TARGETS = dxvk dxvk_configure dxvk32 dxvk64 dxvk_configure32 dxvk_configure64 DXVK_TARGETS = dxvk dxvk_configure dxvk32 dxvk64 dxvk_configure32 dxvk_configure64
@ -867,31 +865,31 @@ dxvk_configure32: $(DXVK_CONFIGURE_FILES32)
dxvk: dxvk32 dxvk64 dxvk: dxvk32 dxvk64
dxvk64: $(DXVK_CONFIGURE_FILES64) dxvk64: $(DXVK_CONFIGURE_FILES64)
(cd "$(DXVK_OBJ64)" && \ cd "$(DXVK_OBJ64)" && \
PATH="$(abspath $(SRCDIR))/glslang/bin/:$(abspath $(TOOLS_DIR64))/bin/:$(PATH)" ninja && \ PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" ninja && \
PATH="$(abspath $(SRCDIR))/glslang/bin/:$(abspath $(TOOLS_DIR64))/bin/:$(PATH)" ninja install) && \ PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" ninja install
mkdir -p "$(DST_DIR)"/lib64/wine/dxvk "$(DST_DIR)"/lib64/wine/wined3d && \
cp -a "$(DXVK_OBJ64)"/lib/*.dll.so "$(DST_DIR)"/lib64/wine/dxvk && \ mkdir -p "$(DST_DIR)/lib64/wine/dxvk"
( cd $(SRCDIR) && git submodule status -- dxvk ) > "$(DST_DIR)"/lib64/wine/dxvk/version && \ cp "$(DXVK_OBJ64)"/bin/dxgi.dll "$(DST_DIR)"/lib64/wine/dxvk
for f in "$(DST_DIR)"/lib64/wine/dxvk/*.dll.so; do \ cp "$(DXVK_OBJ64)"/bin/d3d11.dll "$(DST_DIR)"/lib64/wine/dxvk
if [ -e "$(DST_DIR)"/lib64/wine/$$(basename $$f) ]; then \ cp "$(DXVK_OBJ64)"/bin/d3d10.dll "$(DST_DIR)"/lib64/wine/dxvk
mv "$(DST_DIR)"/lib64/wine/$$(basename $$f) "$(DST_DIR)"/lib64/wine/wined3d/; \ cp "$(DXVK_OBJ64)"/bin/d3d10_1.dll "$(DST_DIR)"/lib64/wine/dxvk
fi; \ cp "$(DXVK_OBJ64)"/bin/d3d10core.dll "$(DST_DIR)"/lib64/wine/dxvk
done ( cd $(SRCDIR) && git submodule status -- dxvk ) > "$(DST_DIR)"/lib64/wine/dxvk/version
dxvk32: $(DXVK_CONFIGURE_FILES32) dxvk32: $(DXVK_CONFIGURE_FILES32)
(cd "$(DXVK_OBJ32)" && \ cd "$(DXVK_OBJ32)" && \
PATH="$(abspath $(SRCDIR))/glslang/bin/:$(abspath $(TOOLS_DIR32)/bin/):$(PATH)" ninja && \ PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" ninja && \
PATH="$(abspath $(SRCDIR))/glslang/bin/:$(abspath $(TOOLS_DIR32)/bin/):$(PATH)" ninja install) && \ PATH="$(abspath $(SRCDIR))/glslang/bin/:$(PATH)" ninja install
mkdir -p "$(DST_DIR)"/lib/wine/dxvk "$(DST_DIR)"/lib/wine/wined3d && \
cp -a "$(DXVK_OBJ32)"/lib/*.dll.so "$(DST_DIR)"/lib/wine/dxvk && \ mkdir -p "$(DST_DIR)"/lib/wine/dxvk
( cd $(SRCDIR) && git submodule status -- dxvk ) > "$(DST_DIR)"/lib/wine/dxvk/version && \ cp "$(DXVK_OBJ32)"/bin/dxgi.dll "$(DST_DIR)"/lib/wine/dxvk/
for f in "$(DST_DIR)"/lib/wine/dxvk/*.dll.so; do \ cp "$(DXVK_OBJ32)"/bin/d3d11.dll "$(DST_DIR)"/lib/wine/dxvk/
if [ -e "$(DST_DIR)"/lib/wine/$$(basename $$f) ]; then \ cp "$(DXVK_OBJ32)"/bin/d3d10.dll "$(DST_DIR)"/lib/wine/dxvk/
mv "$(DST_DIR)"/lib/wine/$$(basename $$f) "$(DST_DIR)"/lib/wine/wined3d/; \ cp "$(DXVK_OBJ32)"/bin/d3d10_1.dll "$(DST_DIR)"/lib/wine/dxvk/
fi; \ cp "$(DXVK_OBJ32)"/bin/d3d10core.dll "$(DST_DIR)"/lib/wine/dxvk/
done ( cd $(SRCDIR) && git submodule status -- dxvk ) > "$(DST_DIR)"/lib/wine/dxvk/version
endif # NO_DXVK endif # NO_DXVK

2
dxvk

@ -1 +1 @@
Subproject commit 38d6268cc4a622bf95efc0bf43075edf27b3c59b Subproject commit 6558b275824e57131b0214ae33abd82e8d1d34c3

76
proton
View File

@ -82,31 +82,6 @@ def upgrade_pfx(old_ver):
shutil.rmtree(prefix) shutil.rmtree(prefix)
return return
if old_proton_ver == "3.7":
#proton 3.7 used symlinks to install DXVK. this is no longer needed,
#restore to correct wine configuration
log("Fixing up d3d11 symlinks")
#64-bit
link_dir = prefix + "drive_c/windows/system32"
dll_dir = basedir + "/dist/lib64/wine/fakedlls"
if os.path.lexists(link_dir + "/d3d11.dll"):
os.remove(link_dir + "/d3d11.dll")
if os.path.lexists(link_dir + "/dxgi.dll"):
os.remove(link_dir + "/dxgi.dll")
shutil.copy(dll_dir + "/d3d11.dll", link_dir + "/d3d11.dll")
shutil.copy(dll_dir + "/dxgi.dll", link_dir + "/dxgi.dll")
#32-bit
link_dir = prefix + "drive_c/windows/syswow64"
dll_dir = basedir + "/dist/lib/wine/fakedlls"
if os.path.lexists(link_dir + "/d3d11.dll"):
os.remove(link_dir + "/d3d11.dll")
if os.path.lexists(link_dir + "/dxgi.dll"):
os.remove(link_dir + "/dxgi.dll")
shutil.copy(dll_dir + "/d3d11.dll", link_dir + "/d3d11.dll")
shutil.copy(dll_dir + "/dxgi.dll", link_dir + "/dxgi.dll")
def run_wine(args): def run_wine(args):
subprocess.call(args, env=env, stderr=lfile) subprocess.call(args, env=env, stderr=lfile)
@ -213,29 +188,29 @@ if os.path.exists(basedir + "/user_settings.py"):
def check_environment(env_name, config_name): def check_environment(env_name, config_name):
if not env_name in env: if not env_name in env:
return return False
if env[env_name] == "0" or len(env[env_name]) == 0: if env[env_name] == "0" or len(env[env_name]) == 0:
config_opts.discard(config_name) config_opts.discard(config_name)
else: else:
config_opts.add(config_name) config_opts.add(config_name)
return True
if "STEAM_COMPAT_CONFIG" in os.environ: if "STEAM_COMPAT_CONFIG" in os.environ:
config_opts = set(os.environ["STEAM_COMPAT_CONFIG"].split(",")) config_opts = set(os.environ["STEAM_COMPAT_CONFIG"].split(","))
else: else:
config_opts = set() config_opts = set()
check_environment("PROTON_USE_WINED3D11", "wined3d11") if "wined3d11" in config_opts:
config_opts.add("wined3d")
if not check_environment("PROTON_USE_WINED3D", "wined3d"):
check_environment("PROTON_USE_WINED3D11", "wined3d")
check_environment("PROTON_NO_D3D11", "nod3d11") check_environment("PROTON_NO_D3D11", "nod3d11")
check_environment("PROTON_NO_ESYNC", "noesync") check_environment("PROTON_NO_ESYNC", "noesync")
if not "noesync" in config_opts: if not "noesync" in config_opts:
env["WINEESYNC"] = "1" env["WINEESYNC"] = "1"
if "wined3d11" in config_opts:
env["WINEDLLPATH"] = lib64dir + "/wine/wined3d:" + libdir + "/wine/wined3d:" + env["WINEDLLPATH"]
else:
env["WINEDLLPATH"] = lib64dir + "/wine/dxvk:" + libdir + "/wine/dxvk:" + env["WINEDLLPATH"]
lfile = None lfile = None
if "SteamGameId" in env: if "SteamGameId" in env:
if env["WINEDEBUG"] != "-all": if env["WINEDEBUG"] != "-all":
@ -288,6 +263,9 @@ with prefix_lock:
shutil.copy(basedir + "/dist/lib/wine/fakedlls/vrclient.dll", dst) shutil.copy(basedir + "/dist/lib/wine/fakedlls/vrclient.dll", dst)
shutil.copy(basedir + "/dist/lib64/wine/fakedlls/vrclient_x64.dll", dst) shutil.copy(basedir + "/dist/lib64/wine/fakedlls/vrclient_x64.dll", dst)
shutil.copy(basedir + "/dist/lib/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/syswow64/")
shutil.copy(basedir + "/dist/lib64/wine/dxvk/openvr_api_dxvk.dll", prefix + "/drive_c/windows/system32/")
#parse linux openvr config and present it in win32 format to the app. #parse linux openvr config and present it in win32 format to the app.
#logic from openvr's CVRPathRegistry_Public::GetPaths #logic from openvr's CVRPathRegistry_Public::GetPaths
@ -312,10 +290,7 @@ with prefix_lock:
vr_config is None or \ vr_config is None or \
vr_log is None: vr_log is None:
try: try:
if "XDG_CONFIG_HOME" in os.environ: path = os.environ.get("XDG_CONFIG_HOME", os.environ["HOME"] + "/.config")
path = os.environ["XDG_CONFIG_HOME"]
else:
path = os.environ["HOME"] + "/.config"
path = path + "/openvr/openvrpaths.vrpath" path = path + "/openvr/openvrpaths.vrpath"
with open(path, "r") as jfile: with open(path, "r") as jfile:
@ -362,6 +337,30 @@ with prefix_lock:
except (ValueError, OSError): except (ValueError, OSError):
log("Unable to write VR config! " + str(sys.exc_info()[1])) log("Unable to write VR config! " + str(sys.exc_info()[1]))
dxvkfiles = ("d3d11", "d3d10", "d3d10core", "d3d10_1", "dxgi")
def make_dxvk_links(dll_dir, link_dir):
for f in dxvkfiles:
dst = link_dir + "/" + f + ".dll"
src = dll_dir + "/" + f + ".dll"
if os.path.lexists(dst):
os.remove(dst)
os.symlink(src, dst)
if "wined3d" in config_opts:
#use gl-based wined3d for d3d11 and d3d10
make_dxvk_links(basedir + "/dist/lib64/wine/fakedlls/",
prefix + "drive_c/windows/system32")
make_dxvk_links(basedir + "/dist/lib/wine/fakedlls/",
prefix + "drive_c/windows/syswow64")
else:
#use vulkan-based dxvk for d3d11 and d3d10
make_dxvk_links(basedir + "/dist/lib64/wine/dxvk/",
prefix + "drive_c/windows/system32")
make_dxvk_links(basedir + "/dist/lib/wine/dxvk/",
prefix + "drive_c/windows/syswow64")
for f in dxvkfiles:
dlloverrides[f] = "n"
if "nod3d11" in config_opts: if "nod3d11" in config_opts:
dlloverrides["d3d11"] = "" dlloverrides["d3d11"] = ""
if "dxgi" in dlloverrides: if "dxgi" in dlloverrides:
@ -374,7 +373,10 @@ for dll in dlloverrides:
s = s + ";" + dll + "=" + setting s = s + ";" + dll + "=" + setting
else: else:
s = dll + "=" + setting s = dll + "=" + setting
env["WINEDLLOVERRIDES"] = s if "WINEDLLOVERRIDES" in os.environ:
env["WINEDLLOVERRIDES"] = os.environ["WINEDLLOVERRIDES"] + ";" + s
else:
env["WINEDLLOVERRIDES"] = s
ARCH_UNKNOWN=0 ARCH_UNKNOWN=0
ARCH_I386=1 ARCH_I386=1

View File

@ -9,8 +9,8 @@ user_settings = {
#Enable DXVK's HUD #Enable DXVK's HUD
# "DXVK_HUD": "devinfo,fps", # "DXVK_HUD": "devinfo,fps",
#Use wined3d for d3d11 instead of dxvk #Use gl-based wined3d for d3d11 and d3d10 instead of vulkan-based dxvk
# "PROTON_USE_WINED3D11": "1", # "PROTON_USE_WINED3D": "1",
#Disable d3d11 entirely #Disable d3d11 entirely
# "PROTON_NO_D3D11": "1", # "PROTON_NO_D3D11": "1",

View File

@ -650,6 +650,10 @@ static EVRCompositorError ivrcompositor_submit_dxvk(
load_vk_unwrappers(); load_vk_unwrappers();
vkdata.m_nImage = (uint64_t)image_handle; vkdata.m_nImage = (uint64_t)image_handle;
vkdata.m_pDevice = get_native_VkDevice(vkdata.m_pDevice);
vkdata.m_pPhysicalDevice = get_native_VkPhysicalDevice(vkdata.m_pPhysicalDevice);
vkdata.m_pInstance = get_native_VkInstance(vkdata.m_pInstance);
vkdata.m_pQueue = get_native_VkQueue(vkdata.m_pQueue);
vkdata.m_nWidth = image_info.extent.width; vkdata.m_nWidth = image_info.extent.width;
vkdata.m_nHeight = image_info.extent.height; vkdata.m_nHeight = image_info.extent.height;
vkdata.m_nFormat = image_info.format; vkdata.m_nFormat = image_info.format;

2
wine

@ -1 +1 @@
Subproject commit 266d11ab06d55dc4ca34e5842cc3ab945b6e9b0b Subproject commit d992dcb8200c704e50f7b19a38ba617c2ed78a61