2018-07-04 19:46:28 +03:00
--- winetricks 2018-07-04 19:17:43.787798000 +0300
+++ winetricks_patched 2018-07-04 19:31:41.167702118 +0300
2018-07-04 19:18:12 +03:00
@@ -4821,10 +4821,16 @@
# WINE64 = wine64, available on 64-bit prefixes
# WINE_ARCH = the native wine for the prefix (wine for 32-bit, wine64 for 64-bit)
# WINE_MULTI = generic wine, new name
- case "$WINE" in
- *64) WINE64="${WINE}" ;;
- *) WINE64="${WINE}64" ;;
- esac
+ if [ "${WINE%??}64" = "$WINE" ]; then
+ WINE64="${WINE}"
+ elif which "${WINE}64" >/dev/null 2>&1; then
+ WINE64="${WINE}64"
+ else
+ # Handle case where wine binaries (or binary wrappers) have a suffix
+ WINE64="$(dirname "$WINE")/"
+ [ "$WINE64" = "./" ] && WINE64=""
+ WINE64="${WINE64}$(basename "$WINE" | sed 's/^wine/wine64/')"
+ fi
WINE_ARCH="${WINE64}"
WINE_MULTI="${WINE}"
2018-07-04 19:46:28 +03:00
@@ -6475,6 +6481,75 @@
2018-07-04 19:18:12 +03:00
#----------------------------------------------------------------
+# $1 - dxvk archive name (required)
+# $2 - minimum Wine version (optional)
+# $3 - minimum Vulkan API version (optional, requires $2 be set)
+helper_dxvk()
+{
+ _W_dxvk_archive="${1}"
+ _W_min_wine_version="${2}"
+ _W_min_vulkan_version="${3}"
+
+ _W_dxvk_dir="${_W_dxvk_archive%.tar.gz}"
+ _W_dxvk_version="${_W_dxvk_dir#*-}"
+
+ w_warn "Please refer to dxvk version ${_W_dxvk_version} release notes... See: https://github.com/doitsujin/dxvk/releases/tag/v${_W_dxvk_version}"
+ if [ ! -z "$_W_min_wine_version" ] && ! w_wine_version_in ",${_W_min_wine_version}" ; then
+ [ -z "$_W_min_vulkan_version" ] || _W_vulkan_info=" The base requirement is Vulkan $_W_min_vulkan_version API support."
+ w_warn "dxvk ${_W_dxvk_version} does not support wine version ${_wine_version_stripped}. dxvk ${_W_dxvk_version} requires wine version ${_W_min_wine_version} (or newer).${_W_vulkan_info}"
+ unset _W_vulkan_info
+ fi
+ w_warn "Please refer to current dxvk base graphics driver requirements... See: https://github.com/doitsujin/dxvk/wiki/Driver-support"
+
+ w_try_cd "$W_TMP"
+ w_try tar -zxf "$W_CACHE/$W_PACKAGE/$_W_dxvk_archive"
+ w_try mv "$W_TMP/$_W_dxvk_dir/x32/d3d11.dll" "$W_SYSTEM32_DLLS/"
+ w_try mv "$W_TMP/$_W_dxvk_dir/x32/dxgi.dll" "$W_SYSTEM32_DLLS/"
+ if test "$W_ARCH" = "win64"; then
+ w_try mv "$W_TMP/$_W_dxvk_dir/x64/d3d11.dll" "$W_SYSTEM64_DLLS/"
+ w_try mv "$W_TMP/$_W_dxvk_dir/x64/dxgi.dll" "$W_SYSTEM64_DLLS/"
+ fi
+ w_override_dlls native d3d11 dxgi
+
+ unset _W_dxvk_archive _W_dxvk_dir _W_dxvk_version _W_min_vulkan_version _W_min_wine_version
+}
+
+#----------------------------------------------------------------
+
+w_metadata dxvk54 dlls \
+ title="Vulkan-based D3D11 implementation for Linux / Wine (0.54)" \
+ publisher="Philip Rebohle" \
+ year="2018" \
+ media="download" \
+ file1="dxvk-0.54.tar.gz" \
+ installed_file1="$W_SYSTEM32_DLLS_WIN/d3d11.dll" \
+ installed_file2="$W_SYSTEM32_DLLS_WIN/dxgi.dll"
+
+load_dxvk54()
+{
+ # https://github.com/doitsujin/dxvk
+ w_download "https://github.com/doitsujin/dxvk/releases/download/v0.54/dxvk-0.54.tar.gz" 1c2f186baaa01d2de7b832f6f05021bdd29eccb65fc197c8b15adfd4e08f9640
+ helper_dxvk "$file1"
+}
+
+#----------------------------------------------------------------
+
+w_metadata dxvk dlls \
2018-07-04 19:46:28 +03:00
+ title="Vulkan-based D3D11 implementation for Linux / Wine (checked)" \
2018-07-04 19:18:12 +03:00
+ publisher="Philip Rebohle" \
+ year="2018" \
+ media="download" \
2018-07-04 19:46:28 +03:00
+ file1="dxvk-0.54.tar.gz" \
2018-07-04 19:18:12 +03:00
+ installed_file1="$W_SYSTEM32_DLLS_WIN/d3d11.dll" \
+ installed_file2="$W_SYSTEM32_DLLS_WIN/dxgi.dll"
+
+load_dxvk()
+{
2018-07-04 19:46:28 +03:00
+ w_call dxvk54
2018-07-04 19:18:12 +03:00
+}
+
+#----------------------------------------------------------------
+
w_metadata dmusic32 dlls \
title="MS dmusic32.dll from DirectX user redistributable" \
publisher="Microsoft" \
2018-07-04 19:46:28 +03:00
@@ -9919,14 +9994,36 @@
2018-07-04 19:18:12 +03:00
year="2018" \
media="download" \
file1="VulkanSDK-1.1.73.0-Installer.exe" \
- installed_file1="C:/VulkanSDK/1.1.73.0/Vulkan.ico"
+ installed_file1="C:/VulkanSDK/1.1.73.0/Vulkan.ico" \
+ installed_file2="C:/windows/winevulkan.json"
load_vulkansdk()
{
+ _W_vulkan_version="${file1%-*.exe}"
+ _W_vulkan_version="${_W_vulkan_version#*-}"
# https://vulkan.lunarg.com/sdk/home
w_download "https://sdk.lunarg.com/sdk/download/1.1.73.0/windows/VulkanSDK-1.1.73.0-Installer.exe?Human=true;u=" a5d193f97db4de97e6b4fdd81f00ff6a603f66bb17dc3cf8ac0fe9aec58497c7 VulkanSDK-1.1.73.0-Installer.exe
w_try_cd "$W_CACHE/$W_PACKAGE"
w_try "$WINE" "$file1" $W_UNATTENDED_SLASH_S
+ echo "Creating C:\\windows\\winevulkan.json winevulkan json file"
+ cat > "$W_WINDIR_UNIX"/winevulkan.json <<_EOF_
+{
+ "file_format_version": "1.0.0",
+ "ICD": {
+ "library_path": "c:\\\\windows\\\\system32\\\\winevulkan.dll",
+ "api_version": "$_W_vulkan_version"
+ }
+}
+_EOF_
+ echo "Creating winevulkan registry settings"
+ cat > "$W_TMP"/winevulkan.reg <<_EOF_
+REGEDIT4
+
+[HKEY_LOCAL_MACHINE\\SOFTWARE\\Khronos\\Vulkan\\Drivers\\]
+"C:\\\\Windows\\\\winevulkan.json"=dword:00000000
+
+_EOF_
+ w_try_regedit "$W_TMP_WIN"\\winevulkan.reg
}
#----------------------------------------------------------------