Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
PortWINE
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Mikhail Tergoev
PortWINE
Commits
b57b6d8a
Commit
b57b6d8a
authored
Jul 27, 2025
by
Htylol
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
updated check_vendor_gpu functions
parent
9cee5b32
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
58 additions
and
36 deletions
+58
-36
functions_helper
data_from_portwine/scripts/functions_helper
+58
-35
start.sh
data_from_portwine/scripts/start.sh
+0
-1
No files found.
data_from_portwine/scripts/functions_helper
View file @
b57b6d8a
...
@@ -854,46 +854,35 @@ check_selinux () {
...
@@ -854,46 +854,35 @@ check_selinux () {
export -f check_selinux
export -f check_selinux
check_vendor_gpu () {
check_vendor_gpu () {
unset VENDOR_GPU_USE
if [[ -n
$PW_GPU_USE
&&
$PW_GPU_USE
!= "
disabled
" ]] ; then
if [[
$PW_GPU_USE
!= disabled ]] ; then
case "
${
PW_GPU_USE
,,
}
" in
case "
${
PW_GPU_USE
,,
}
" in
*nvidia*)
*nvidia*)
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("
nvidia
")
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE="
nvidia
"
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("
nouveau
")
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE="
nouveau
" ;;
;;
*amd*)
*amd*)
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("
amd
")
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE="
amd
" ;;
;;
*intel*)
*intel*)
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("
intel
")
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE="
intel
" ;;
;;
esac
esac
fi
elif command -v glxinfo &>/dev/null ; then
pw_check_glxinfo
if command -v glxinfo &>/dev/null ; then
background_pid --end "
pw_check_glxinfo
" "
3
"
case "
$(
<
"
${
PW_TMPFS_PATH
}
/glxinfo.tmp"
tr
'[:upper:]'
'[:lower:]'
)
" in
case "
$(
<
"
${
PW_TMPFS_PATH
}
/glxinfo.tmp"
tr
'[:upper:]'
'[:lower:]'
)
" in
*nvidia*)
*nvidia*)
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("
nvidia
")
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE="
nvidia
"
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("
nouveau
")
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE="
nouveau
" ;;
;;
*amd*)
*amd*)
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("
amd
")
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE="
amd
" ;;
;;
*intel*)
*intel*)
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("
intel
")
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE="
intel
" ;;
;;
esac
esac
else
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE="
nvidia
"
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE="
nouveau
"
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE="
amd
"
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE="
intel
"
fi
fi
if [[ -z
${
VENDOR_GPU_USE
[0]
}
]] ; then
echo "
$VENDOR_GPU_USE
"
[[ -d /sys/bus/pci/drivers/nvidia ]] && VENDOR_GPU_USE+=("
nvidia
")
[[ -d /sys/bus/pci/drivers/nouveau ]] && VENDOR_GPU_USE+=("
nouveau
")
[[ -d /sys/bus/pci/drivers/amdgpu ]] && VENDOR_GPU_USE+=("
amd
")
[[ -d /sys/bus/pci/drivers/i915 ]] && VENDOR_GPU_USE+=("
intel
")
fi
echo "
${
VENDOR_GPU_USE
[*]
}
"
}
}
background_pid () {
background_pid () {
...
@@ -2839,7 +2828,35 @@ pw_check_dxvk () {
...
@@ -2839,7 +2828,35 @@ pw_check_dxvk () {
IFS
=
''
read
-r
-a
SELECTED_VULKAN_GPU
<<<
"
$PW_GPU_USE
"
IFS
=
''
read
-r
-a
SELECTED_VULKAN_GPU
<<<
"
$PW_GPU_USE
"
fi
fi
for
i
in
"
${
SELECTED_VULKAN_GPU
[@]
}
"
;
do
# какие карты в приоритете, если не выбран изначально PW_GPU_USE
if
[[
-n
${
SELECTED_VULKAN_GPU
[1]
}
]]
;
then
for
elem
in
"
${
SELECTED_VULKAN_GPU
[@]
}
"
;
do
elem_lower
=
${
elem
,,
}
if
[[
$elem_lower
=
~ nvidia
]]
;
then
nvidia_group+
=(
"
$elem
"
)
elif
[[
$elem_lower
=
~ radv
]]
;
then
radv_group+
=(
"
$elem
"
)
elif
[[
$elem_lower
=
~ amd
]]
;
then
amd_group+
=(
"
$elem
"
)
elif
[[
$elem_lower
=
~ intel
]]
;
then
intel_group+
=(
"
$elem
"
)
else
other_group+
=(
"
$elem
"
)
fi
done
unset
SELECTED_VULKAN_GPU
SELECTED_VULKAN_GPU_NEW
=(
"
${
nvidia_group
[@]
}
"
"
${
radv_group
[@]
}
"
"
${
amd_group
[@]
}
"
"
${
intel_group
[@]
}
"
"
${
other_group
[@]
}
"
)
fi
# получаем информацию о конкретном драйвере который выбран в PW_GPU_USE,
# либо ищем наилучший драйвер с учётом приоритета видеокарт + инфа
for
i
in
"
${
SELECTED_VULKAN_GPU_NEW
[@]
}
"
"
${
SELECTED_VULKAN_GPU
[@]
}
"
;
do
PW_CHECK_VULKAN_DRIVER
=
"
$(
awk
-v
target
=
"
$i
"
'
PW_CHECK_VULKAN_DRIVER
=
"
$(
awk
-v
target
=
"
$i
"
'
BEGIN {
BEGIN {
in_target = 0
in_target = 0
...
@@ -2861,15 +2878,16 @@ pw_check_dxvk () {
...
@@ -2861,15 +2878,16 @@ pw_check_dxvk () {
next
next
}
}
in_target {
in_target {
if ($0 ~ /driverName/) { var5=$0 }
if ($0 ~ /driverInfo/) { var4=$0; exit }
if ($0 ~ /driverInfo/) { var4=$0; exit }
}
}
END {
END {
print var1 "!" var2 "!" var3 "!" var4 "!"
print var1 "!" var2 "!" var3 "!" var4 "!"
var5 "!"
}
}
'
"
${
PW_TMPFS_PATH
}
/vulkaninfo.tmp"
)
"
'
"
${
PW_TMPFS_PATH
}
/vulkaninfo.tmp"
)
"
IFS
=
'!'
read
-r
-a
PW_CHECK_VULKAN_DRIVER_ARRAY
<<<
"
$PW_CHECK_VULKAN_DRIVER
"
IFS
=
'!'
read
-r
-a
PW_CHECK_VULKAN_DRIVER_ARRAY
<<<
"
$PW_CHECK_VULKAN_DRIVER
"
if
[[
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[
2
],,
}
=
~ nvidia
]]
;
then
if
[[
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[
4
],,
}
=
~ nvidia
]]
;
then
read
-r
-a
PW_CHECK_VULKAN_DRIVER_ARRAY_3
<<<
"
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[3]
}
"
read
-r
-a
PW_CHECK_VULKAN_DRIVER_ARRAY_3
<<<
"
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[3]
}
"
if
compare_versions
"
${
PW_CHECK_VULKAN_DRIVER_ARRAY_3
[2]
}
"
"550.54.14"
;
then
if
compare_versions
"
${
PW_CHECK_VULKAN_DRIVER_ARRAY_3
[2]
}
"
"550.54.14"
;
then
PW_VULKAN_DRIVER_USE
=
"6"
&&
break
PW_VULKAN_DRIVER_USE
=
"6"
&&
break
...
@@ -2879,15 +2897,17 @@ pw_check_dxvk () {
...
@@ -2879,15 +2897,17 @@ pw_check_dxvk () {
if
compare_versions
"
${
PW_CHECK_VULKAN_DRIVER_ARRAY_1
[2]
}
"
"25.0"
;
then
if
compare_versions
"
${
PW_CHECK_VULKAN_DRIVER_ARRAY_1
[2]
}
"
"25.0"
;
then
PW_VULKAN_DRIVER_USE
=
"6"
&&
break
PW_VULKAN_DRIVER_USE
=
"6"
&&
break
fi
fi
elif
[[
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[
3],,
}
=
~ llpc
]]
;
then
elif
[[
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[
4],,
}
==
*
"amd open-source driver"
*
]]
;
then
read
-r
-a
PW_CHECK_VULKAN_DRIVER_ARRAY_1
<<<
"
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[1]
}
"
read
-r
-a
PW_CHECK_VULKAN_DRIVER_ARRAY_1
<<<
"
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[1]
}
"
if
compare_versions
"
${
PW_CHECK_VULKAN_DRIVER_ARRAY_1
[2]
}
"
"2.0.310"
;
then
if
compare_versions
"
${
PW_CHECK_VULKAN_DRIVER_ARRAY_1
[2]
}
"
"2.0.310"
;
then
PW_VULKAN_DRIVER_USE
=
"6"
PW_VULKAN_DRIVER_USE
=
"6"
&&
break
fi
fi
fi
fi
done
done
if
[[
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[3],,
}
=
~ llpc
]]
&&
[[
-z
$PW_AMD_VULKAN_USE
||
$PW_AMD_VULKAN_USE
==
"disabled"
]]
;
then
# если выбран amdvlk, то глобально без выбора PW_AMD_VULKAN_USE будет работать он
# для тех систем, где к примеру radv не используется, либо в приоритете amdvlk
if
[[
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[4],,
}
==
*
"amd open-source driver"
*
]]
&&
[[
-z
$PW_AMD_VULKAN_USE
||
$PW_AMD_VULKAN_USE
==
"disabled"
]]
;
then
PW_VK_ICD_FILENAMES
=
""
PW_VK_ICD_FILENAMES
=
""
for
dir
in
/opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d
;
do
for
dir
in
/opt/amdgpu/etc/vulkan/icd.d /etc/vulkan/icd.d /usr/share/vulkan/icd.d
;
do
for
file
in
"
$dir
"
/amd_icd
*
.json
;
do
for
file
in
"
$dir
"
/amd_icd
*
.json
;
do
...
@@ -2897,17 +2917,20 @@ pw_check_dxvk () {
...
@@ -2897,17 +2917,20 @@ pw_check_dxvk () {
export
PW_VK_ICD_FILENAMES
export
PW_VK_ICD_FILENAMES
fi
fi
if
[[
-z
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[3]
}
]]
&&
[[
-n
$PW_GPU_USE
&&
$PW_GPU_USE
!=
"disabled"
]]
;
then
# фикс, если вдруг название PW_GPU_USE изменилось
if
[[
-z
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[4]
}
]]
&&
[[
-n
$PW_GPU_USE
&&
$PW_GPU_USE
!=
"disabled"
]]
;
then
unset
PW_GPU_USE
unset
PW_GPU_USE
pw_check_dxvk
pw_check_dxvk
fi
fi
# если PW_GPU_USE изначально не было
if
[[
-z
$PW_GPU_USE
]]
;
then
if
[[
-z
$PW_GPU_USE
]]
;
then
export
PW_GPU_USE
=
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[2]//*= /
}
export
PW_GPU_USE
=
${
PW_CHECK_VULKAN_DRIVER_ARRAY
[2]//*= /
}
edit_user_conf_from_gui PW_GPU_USE
edit_user_conf_from_gui PW_GPU_USE
fi
fi
fi
fi
# формируется в завимости от выбранного PW_GPU_USE и поддержки самого драйвера
if
[[
$PW_VULKAN_DRIVER_USE
==
"6"
]]
;
then
if
[[
$PW_VULKAN_DRIVER_USE
==
"6"
]]
;
then
[[
-z
$PW_VULKAN_USE
]]
&&
PW_VULKAN_USE
=
"6"
[[
-z
$PW_VULKAN_USE
]]
&&
PW_VULKAN_USE
=
"6"
case
"
$PW_VULKAN_USE
"
in
case
"
$PW_VULKAN_USE
"
in
...
...
data_from_portwine/scripts/start.sh
View file @
b57b6d8a
...
@@ -309,7 +309,6 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then
...
@@ -309,7 +309,6 @@ if [[ "${SKIP_CHECK_UPDATES}" != 1 ]] ; then
background_pid
--start
"pw_check_vulkan"
"1"
background_pid
--start
"pw_check_vulkan"
"1"
background_pid
--start
"pw_get_tmp_files"
"2"
background_pid
--start
"pw_get_tmp_files"
"2"
background_pid
--start
"pw_check_glxinfo"
"3"
fi
fi
if
[[
-z
$PW_GPU_USE
||
$PW_GPU_USE
==
"disabled"
]]
;
then
if
[[
-z
$PW_GPU_USE
||
$PW_GPU_USE
==
"disabled"
]]
;
then
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment