From 3b7656e2e4248955121e2cd4838a0e860d01dbce Mon Sep 17 00:00:00 2001
From: Boria138 <boriabloger@protonmail.com>
Date: Tue, 12 Dec 2023 15:33:23 +0600
Subject: [PATCH] Added vulkan driver check

---
 data_from_portwine/scripts/runlib      | 5 +++--
 data_from_portwine/scripts/start.sh    | 5 +++++
 data_from_portwine/scripts/zen_yad_gui | 2 +-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/data_from_portwine/scripts/runlib b/data_from_portwine/scripts/runlib
index 7e2c593..d37a763 100755
--- a/data_from_portwine/scripts/runlib
+++ b/data_from_portwine/scripts/runlib
@@ -120,8 +120,8 @@ start_portwine () {
             export INTEL_DEBUG=norbc
         fi
         if [[ "${PW_GPU_USE}" != "disabled" ]] ; then
-            PW_vendorID="$(vulkaninfo 2>/dev/null | grep -B3 "${PW_GPU_USE}" | grep vendorID | awk -F'0x' '{print $2}')"
-            PW_deviceID="$(vulkaninfo 2>/dev/null | grep -B3 "${PW_GPU_USE}" | grep deviceID | awk -F'0x' '{print $2}')"
+            PW_vendorID="$(vulkaninfo --summary 2>/dev/null | grep -B3 "${PW_GPU_USE}" | grep vendorID | awk -F'0x' '{print $2}')"
+            PW_deviceID="$(vulkaninfo --summary 2>/dev/null | grep -B3 "${PW_GPU_USE}" | grep deviceID | awk -F'0x' '{print $2}')"
             PW_ID_VIDEO="--prefer-vk-device ${PW_vendorID}:${PW_deviceID}"
         else
             unset PW_ID_VIDEO
@@ -774,6 +774,7 @@ export PW_VULKAN_DIR="${PORT_WINE_TMP_PATH}/VULKAN"
 create_new_dir "${PW_VULKAN_DIR}"
 
 export VULKAN_API_DRIVER_VERSION="$(vulkaninfo 2>/dev/null | grep "api" | head -n 1 | awk '{print $3}')"
+export VULKAN_DRIVER_NAME="$(vulkaninfo --summary 2>/dev/null | grep driverName | awk '{print$3}' | head -1)"
 export LSPCI_VGA="$(lspci -k | grep -E 'VGA|3D' | tr -d '\n')"
 
 cd "${PORT_SCRIPTS_PATH}"
diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh
index 5cca226..c0b8ec7 100755
--- a/data_from_portwine/scripts/start.sh
+++ b/data_from_portwine/scripts/start.sh
@@ -28,6 +28,11 @@ if [[ "${XDG_SESSION_TYPE}" = "wayland" ]] && [[ ! -f "${PORT_WINE_TMP_PATH}/che
     echo "1" > "${PORT_WINE_TMP_PATH}/check_wayland"
 fi
 
+if [[ -z "$VULKAN_DRIVER_NAME" ]] || [[ "$VULKAN_DRIVER_NAME" =~ "llvmpipe" ]] || [[ ! -f "${PORT_WINE_TMP_PATH}/check_vulkan" ]] ; then
+	zenity_info "Attention working version of vulkan not detected!\nIt is recommended to run games in OpenGL (low performance possible)!"
+	echo "1" > "${PORT_WINE_TMP_PATH}/check_vulkan"
+fi
+
 if [[ -f "${PORT_WINE_TMP_PATH}/tmp_main_gui_size" ]] && [[ ! -z "$(cat ${PORT_WINE_TMP_PATH}/tmp_main_gui_size)" ]] ; then
     export PW_MAIN_SIZE_W="$(cat ${PORT_WINE_TMP_PATH}/tmp_main_gui_size | awk '{print $1}')"
     export PW_MAIN_SIZE_H="$(cat ${PORT_WINE_TMP_PATH}/tmp_main_gui_size | awk '{print $2}')"
diff --git a/data_from_portwine/scripts/zen_yad_gui b/data_from_portwine/scripts/zen_yad_gui
index 9d95170..7def524 100755
--- a/data_from_portwine/scripts/zen_yad_gui
+++ b/data_from_portwine/scripts/zen_yad_gui
@@ -170,7 +170,7 @@ pw_gui_for_edit_db () {
         GPU_VAR="disabled"
     fi
 
-    GET_GPU_NAMES=$(vulkaninfo 2>/dev/null | awk -F '=' '/deviceName/{print $2}' | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!')
+    GET_GPU_NAMES=$(vulkaninfo --summary 2>/dev/null | awk -F '=' '/deviceName/{print $2}' | sed '/llvm/d'| sort -u | sed 's/^ //' | paste -sd '!')
 
     GET_REFRASH_RATE="30!45!60!75!120!144!165!240"
 
-- 
2.24.1