Refactoring 3D api number 2 (Added stable 1.3+ dvxk,vkd3d)
This commit is contained in:
@ -2162,7 +2162,7 @@ pw_check_and_download_wine () {
|
||||
|
||||
pw_check_and_download_dxvk_and_vkd3d () {
|
||||
# Download DXVK versions
|
||||
for DXVK_VAR_VER in "${DXVK_SAREK_VER}" "${DXVK_GIT_VER}" ; do
|
||||
for DXVK_VAR_VER in "${DXVK_SAREK_VER}" "${DXVK_OLD_VER}" "${DXVK_NEW_VER}" ; do
|
||||
if [[ ! -d "${PW_VULKAN_DIR}/dxvk-${DXVK_VAR_VER}" ]] ; then
|
||||
print_info "Download and install DXVK v.${DXVK_VAR_VER}"
|
||||
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/dxvk-${DXVK_VAR_VER}/dxvk-${DXVK_VAR_VER}.tar.xz" \
|
||||
@ -2192,7 +2192,7 @@ pw_check_and_download_dxvk_and_vkd3d () {
|
||||
done
|
||||
|
||||
# Download VKD3D versions
|
||||
for VKD3D_VAR_VER in "${VKD3D_SAREK_VER}" "${VKD3D_GIT_VER}" ; do
|
||||
for VKD3D_VAR_VER in "${VKD3D_SAREK_VER}" "${VKD3D_OLD_VER}" "${VKD3D_NEW_VER}" ; do
|
||||
if [[ ! -d "${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_VAR_VER}" ]] ; then
|
||||
print_info "Download and install VKD3D-PROTON v.${VKD3D_VAR_VER}"
|
||||
if try_download "https://github.com/Castro-Fidel/vulkan/releases/download/vkd3d-proton-${VKD3D_VAR_VER}/vkd3d-proton-${VKD3D_VAR_VER}.tar.xz" \
|
||||
@ -3765,7 +3765,7 @@ fi
|
||||
# WINED3D OPENGL
|
||||
print_info "Use WINED3D OpenGL"
|
||||
unset PW_VKBASALT PW_USE_GALLIUM_ZINK PW_USE_WINED3D_VULKAN PW_USE_SUPPLIED_DXVK_VKD3D
|
||||
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
|
||||
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}"
|
||||
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
|
||||
CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi"
|
||||
;;
|
||||
@ -3782,28 +3782,38 @@ fi
|
||||
fi
|
||||
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_SAREK_VER}"
|
||||
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
|
||||
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk"
|
||||
CP_VKD3D_FILES="d3d12 libvkd3d-1 libvkd3d-shader-1"
|
||||
CP_WINE_FILES="d3d12core d3d10_1 d3d10"
|
||||
;;
|
||||
2)
|
||||
# NEWEST DXVK AND VKD3D
|
||||
print_info "DXVK v.${DXVK_GIT_VER} in use"
|
||||
print_info "VKD3D-PROTON v.${VKD3D_GIT_VER} in use"
|
||||
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}"
|
||||
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
|
||||
print_info "DXVK v.${DXVK_NEW_VER} in use"
|
||||
print_info "VKD3D-PROTON v.${VKD3D_NEW_VER} in use"
|
||||
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}"
|
||||
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}"
|
||||
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
|
||||
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
|
||||
CP_WINE_FILES="d3d10_1 d3d10"
|
||||
;;
|
||||
6)
|
||||
# STABLE DXVK AND VKD3D
|
||||
print_info "DXVK v.${DXVK_OLD_VER} in use"
|
||||
print_info "VKD3D-PROTON v.${VKD3D_OLD_VER} in use"
|
||||
PATH_TO_DXVK_FILES="${PW_VULKAN_DIR}/dxvk-${DXVK_OLD_VER}"
|
||||
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_OLD_VER}"
|
||||
CP_DXVK_FILES="d3d11 d3d10core d3d9 d3d8 dxgi"
|
||||
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk"
|
||||
CP_VKD3D_FILES="d3d12 d3d12core libvkd3d-1 libvkd3d-shader-1"
|
||||
CP_WINE_FILES="d3d10_1 d3d10"
|
||||
;;
|
||||
esac
|
||||
|
||||
[[ "$PW_USE_VRCLIENT" = "1" ]] && add_to_var CP_DXVK_FILES "openvr_api_dxvk"
|
||||
|
||||
if [[ $PW_USE_GALLIUM_NINE == "1" ]] \
|
||||
|| [[ $PW_USE_GALLIUM_ZINK == "1" ]] \
|
||||
|| [[ $PW_USE_WINED3D_VULKAN == "1" ]] ; then
|
||||
unset PATH_TO_DXVK_FILES CP_DXVK_FILES PW_USE_SUPPLIED_DXVK_VKD3D
|
||||
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_GIT_VER}"
|
||||
PATH_TO_VKD3D_FILES="${PW_VULKAN_DIR}/vkd3d-proton-${VKD3D_NEW_VER}"
|
||||
CP_VKD3D_FILES="libvkd3d-1 libvkd3d-shader-1"
|
||||
CP_WINE_FILES="d3d12 d3d12core d3d11 d3d10core d3d10_1 d3d10 d3d9 d3d8 dxgi"
|
||||
fi
|
||||
@ -3942,7 +3952,7 @@ fi
|
||||
done
|
||||
# DGVOODOO2 settings:
|
||||
if [[ "${PW_DGV2_USE_DX12}" == "1" ]] ; then
|
||||
if [[ "${PW_VULKAN_USE}" == "1" ]] || [[ "${PW_VULKAN_USE}" == "2" ]]
|
||||
if [[ "${PW_VULKAN_USE}" =~ ^(1|2|6)$ ]]
|
||||
then sed -i "s/OutputAPI = d3d11_fl11_0/OutputAPI = d3d12_fl12_0/" "$DGV2CONF"
|
||||
fi
|
||||
fi
|
||||
@ -4150,9 +4160,9 @@ fi
|
||||
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
|
||||
try_force_link_file "${WINEDIR}/lib64/wine/nvapi/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
|
||||
else
|
||||
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
|
||||
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
|
||||
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_GIT_VER}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
|
||||
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x32/nvapi.dll" "${WINEPREFIX}/drive_c/windows/syswow64/nvapi.dll"
|
||||
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x64/nvapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvapi64.dll"
|
||||
try_force_link_file "${PW_VULKAN_DIR}/dxvk-${DXVK_NEW_VER}/x64/nvofapi64.dll" "${WINEPREFIX}/drive_c/windows/system32/nvofapi64.dll"
|
||||
fi
|
||||
var_winedlloverride_update "nvapi64,nvofapi64,nvapi=n;nvcuda=b"
|
||||
else
|
||||
@ -7086,7 +7096,8 @@ portwine_start_debug () {
|
||||
case "$PW_VULKAN_USE" in
|
||||
0) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DirectX to wined3d opengl" >> "${PORT_WINE_PATH}/PortProton.log" ;;
|
||||
1) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_SAREK_VER}, VKD3D-PROTON v.${VKD3D_SAREK_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
|
||||
2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_GIT_VER}, VKD3D-PROTON v.${VKD3D_GIT_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
|
||||
2) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_NEW_VER}, VKD3D-PROTON v.${VKD3D_NEW_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
|
||||
6) echo "PW_VULKAN_USE=${PW_VULKAN_USE} - DXVK v.${DXVK_OLD_VER}, VKD3D-PROTON v.${VKD3D_OLD_VER}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
|
||||
*) echo "PW_VULKAN_USE=${PW_VULKAN_USE}" >> "${PORT_WINE_PATH}/PortProton.log" ;;
|
||||
esac
|
||||
echo "--------------------------------------------" >> "${PORT_WINE_PATH}/PortProton.log"
|
||||
|
@ -520,8 +520,9 @@ then DIST_ADD_TO_GUI+="!${translations[USE_SYSTEM_WINE]}"
|
||||
fi
|
||||
|
||||
SORT_OPENGL="${translations[WineD3D OpenGL (For video cards without Vulkan)]}"
|
||||
SORT_SAREK="${translations[DXVK-Sarek, VKD3D (Vulkan v1.1+)]}"
|
||||
SORT_NEWEST="${translations[Newest DXVK, VKD3D (Vulkan v1.3+)]}"
|
||||
SORT_SAREK="${translations[DXVK, VKD3D (Sarek) (Vulkan v1.1+)]}"
|
||||
SORT_STABLE="${translations[DXVK, VKD3D (Stable) (Vulkan v1.3+)]}"
|
||||
SORT_NEWEST="${translations[DXVK, VKD3D (Newest) (Vulkan v1.3+)]}"
|
||||
|
||||
if [[ $PW_WINE_USE == PROTON_LG ]] ; then
|
||||
PW_WINE_USE="${PW_PROTON_LG_VER}"
|
||||
@ -568,53 +569,70 @@ if [[ -f "$portwine_exe" ]] ; then
|
||||
fi
|
||||
|
||||
[[ $PW_VULKAN_USE =~ [3-5] ]] && unset PW_VULKAN_USE
|
||||
if [[ -z $PW_VULKAN_USE ]] ; then
|
||||
pw_check_vulkan
|
||||
if [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
|
||||
unset VULKAN_VERSION_CHECK VULKAN_DRIVER_VERSION VULKAN_DEVICE_NAME
|
||||
count="0"
|
||||
while read -r line ; do
|
||||
[[ $line =~ apiVersion ]] && VULKAN_VERSION_CHECK["$count"]="$line"
|
||||
[[ $line =~ driverVersion ]] && VULKAN_DRIVER_VERSION["$count"]="$line"
|
||||
if [[ $line =~ deviceName ]] ; then
|
||||
if [[ $line == *"$PW_GPU_USE"* ]] ; then
|
||||
VULKAN_DEVICE_NAME["$count"]="$PW_GPU_USE"
|
||||
break
|
||||
pw_check_vulkan
|
||||
if [[ -f "${PW_TMPFS_PATH}/vulkaninfo.tmp" ]] ; then
|
||||
unset VULKAN_VERSION_CHECK VULKAN_DRIVER_VERSION VULKAN_DEVICE_NAME
|
||||
count="0"
|
||||
while read -r line ; do
|
||||
[[ $line =~ apiVersion ]] && VULKAN_VERSION_CHECK["$count"]="$line"
|
||||
[[ $line =~ driverVersion ]] && VULKAN_DRIVER_VERSION["$count"]="$line"
|
||||
if [[ $line =~ deviceName ]] ; then
|
||||
if [[ $line == *"$PW_GPU_USE"* ]] ; then
|
||||
VULKAN_DEVICE_NAME["$count"]="$PW_GPU_USE"
|
||||
break
|
||||
else
|
||||
if [[ $line =~ llvmpipe ]] ; then
|
||||
unset 'VULKAN_VERSION_CHECK["$count"]' 'VULKAN_DRIVER_VERSION["$count"]'
|
||||
else
|
||||
if [[ $line =~ llvmpipe ]] ; then
|
||||
unset 'VULKAN_VERSION_CHECK["$count"]' 'VULKAN_DRIVER_VERSION["$count"]'
|
||||
else
|
||||
VULKAN_DEVICE_NAME["$count"]="$line"
|
||||
(( count++ ))
|
||||
fi
|
||||
VULKAN_DEVICE_NAME["$count"]="$line"
|
||||
(( count++ ))
|
||||
fi
|
||||
fi
|
||||
done < "${PW_TMPFS_PATH}/vulkaninfo.tmp"
|
||||
if [[ ${VULKAN_VERSION_CHECK[*]} =~ 1.[3-9]+. ]] ; then
|
||||
for number in $(seq 0 $(( ${#VULKAN_VERSION_CHECK[@]} - 1 ))) ; do
|
||||
VULKAN_DRIVER_VERSION[$number]="${VULKAN_DRIVER_VERSION[$number]//*= /}"
|
||||
VULKAN_DRIVER_VERSION[$number]="${VULKAN_DRIVER_VERSION[$number]// (*/}"
|
||||
if [[ ${VULKAN_DEVICE_NAME[$number],,} =~ (amd|intel) && ${VULKAN_DRIVER_VERSION[$number]} > 25 ]] \
|
||||
|| [[ ${VULKAN_DEVICE_NAME[$number],,} =~ nvidia && ${VULKAN_DRIVER_VERSION[$number]} > 550.54.13 ]] ; then
|
||||
export PW_VULKAN_USE="2"
|
||||
break
|
||||
else
|
||||
export PW_VULKAN_USE="6"
|
||||
fi
|
||||
done
|
||||
elif [[ ${VULKAN_VERSION_CHECK[*]} =~ 1.[1-2]. ]] ; then
|
||||
export PW_VULKAN_USE="1"
|
||||
fi
|
||||
else
|
||||
export PW_VULKAN_USE="0"
|
||||
done < "${PW_TMPFS_PATH}/vulkaninfo.tmp"
|
||||
if [[ ! ${VULKAN_VERSION_CHECK[*]} =~ 1.[3-9]+. ]] ; then
|
||||
for number in $(seq 0 $(( ${#VULKAN_VERSION_CHECK[@]} - 1 ))) ; do
|
||||
VULKAN_DRIVER_VERSION[$number]="${VULKAN_DRIVER_VERSION[$number]//*= /}"
|
||||
VULKAN_DRIVER_VERSION[$number]="${VULKAN_DRIVER_VERSION[$number]// (*/}"
|
||||
if [[ ${VULKAN_DEVICE_NAME[$number],,} =~ (amd|intel) && ${VULKAN_DRIVER_VERSION[$number]} > 25 ]] \
|
||||
|| [[ ${VULKAN_DEVICE_NAME[$number],,} =~ nvidia && ${VULKAN_DRIVER_VERSION[$number]} > 550.54.13 ]] ; then
|
||||
[[ -z $PW_VULKAN_USE ]] && export PW_VULKAN_USE="2"
|
||||
PW_VULKAN_DRIVERS_NEW="1"
|
||||
break
|
||||
else
|
||||
[[ -z $PW_VULKAN_USE ]] && export PW_VULKAN_USE="6"
|
||||
fi
|
||||
done
|
||||
elif [[ ! ${VULKAN_VERSION_CHECK[*]} =~ 1.[1-2]. ]] ; then
|
||||
[[ -z $PW_VULKAN_USE ]] && export PW_VULKAN_USE="1"
|
||||
case "$PW_VULKAN_USE" in
|
||||
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_SAREK" ;;
|
||||
*) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_OPENGL" ;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
case "$PW_VULKAN_USE" in
|
||||
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_SAREK" ;;
|
||||
1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_NEWEST!$SORT_OPENGL" ;;
|
||||
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_SAREK!$SORT_OPENGL" ;;
|
||||
esac
|
||||
if [[ -z $PW_VULKAN_USE ]] ; then
|
||||
export PW_VULKAN_USE="0"
|
||||
PW_DEFAULT_VULKAN_USE="$SORT_OPENGL"
|
||||
fi
|
||||
|
||||
if [[ -z $PW_DEFAULT_VULKAN_USE ]] ; then
|
||||
if [[ $PW_VULKAN_DRIVERS_NEW == "1" ]] ; then
|
||||
case "$PW_VULKAN_USE" in
|
||||
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK" ;;
|
||||
1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_NEWEST!$SORT_STABLE!$SORT_OPENGL" ;;
|
||||
6) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_NEWEST!$SORT_SAREK!$SORT_OPENGL" ;;
|
||||
*) PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" ;;
|
||||
esac
|
||||
else
|
||||
case "$PW_VULKAN_USE" in
|
||||
0) PW_DEFAULT_VULKAN_USE="$SORT_OPENGL!$SORT_STABLE!$SORT_SAREK" ;;
|
||||
1) PW_DEFAULT_VULKAN_USE="$SORT_SAREK!$SORT_STABLE!$SORT_OPENGL" ;;
|
||||
*) PW_DEFAULT_VULKAN_USE="$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL" ;;
|
||||
esac
|
||||
fi
|
||||
fi
|
||||
|
||||
export KEY_START="$RANDOM"
|
||||
if [[ $PW_GUI_START == "NOTEBOOK" ]] ; then
|
||||
@ -863,7 +881,7 @@ else
|
||||
else export PW_GUI_SORT_TABS=(2 3 4 5 1)
|
||||
fi
|
||||
|
||||
PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_SAREK!$SORT_OPENGL"
|
||||
PW_DEFAULT_VULKAN_USE="$SORT_NEWEST!$SORT_STABLE!$SORT_SAREK!$SORT_OPENGL"
|
||||
|
||||
KEY_MENU="$RANDOM"
|
||||
|
||||
@ -1012,6 +1030,7 @@ case "${VULKAN_MOD}" in
|
||||
"$SORT_OPENGL" ) export PW_VULKAN_USE="0" ;;
|
||||
"$SORT_SAREK" ) export PW_VULKAN_USE="1" ;;
|
||||
"$SORT_NEWEST" ) export PW_VULKAN_USE="2" ;;
|
||||
"$SORT_STABLE" ) export PW_VULKAN_USE="6" ;;
|
||||
esac
|
||||
|
||||
init_wine_ver
|
||||
|
@ -58,10 +58,12 @@ export PW_WINE_FULLSCREEN_FSR="1"
|
||||
export WINE_FULLSCREEN_FSR_MODE="ultra"
|
||||
###DXVK_AND_VKD3D###
|
||||
export VKD3D_LIMIT_TESS_FACTORS="64"
|
||||
export DXVK_NEW_VER="2.7-5"
|
||||
export DXVK_OLD_VER="2.6.2"
|
||||
export DXVK_SAREK_VER="sarek-1.11.0"
|
||||
export DXVK_GIT_VER="2.6.1-368"
|
||||
export VKD3D_NEW_VER="1.1-4666"
|
||||
export VKD3D_OLD_VER="2.14.1"
|
||||
export VKD3D_SAREK_VER="sarek-2.6.0"
|
||||
export VKD3D_GIT_VER="1.1-4655"
|
||||
###VKBASALT###
|
||||
export PW_VKBASALT_EFFECTS="Curves:cas"
|
||||
export PW_VKBASALT_FFX_CAS="0.50"
|
||||
|
Reference in New Issue
Block a user