Skip to content

Commit 1494535

Browse files
Arm backend: Fix VKML install bug for macOS. (pytorch#19612)
Change-Id: Id97fcb787369b62aecd4a0be27132ff4a0785fcf cc @digantdesai @freddan80 @per @zingo @oscarandersson8218 @mansnils @Sebastian-Larsson @robell @rascani Signed-off-by: Michiel Olieslagers <michiel.olieslagers@arm.com>
1 parent f6be985 commit 1494535

1 file changed

Lines changed: 26 additions & 5 deletions

File tree

backends/arm/scripts/vulkan_utils.sh

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ function install_vulkan_sdk_macos() {
7171
fi
7272

7373
log_step "vulkan" "Extracting Vulkan SDK installer"
74+
rm -rf \
75+
"vulkansdk-macOS-${vulkan_sdk_version}.app" \
76+
"vulkansdk-macos-${vulkan_sdk_version}.app"
7477
unzip -q -o "${vulkan_sdk_zip_file}"
7578

7679
local vulkan_sdk_app_path=""
@@ -91,15 +94,33 @@ function install_vulkan_sdk_macos() {
9194

9295
local install_root="$(cd "${root_dir}" && pwd)/${vulkan_sdk_base_dir}/${vulkan_sdk_version}"
9396
mkdir -p "${install_root}"
94-
local vulkan_sdk_root="${root_dir}/${vulkan_sdk_base_dir}"
9597

9698
log_step "vulkan" "Installing Vulkan SDK (${vulkan_sdk_version}) to ${install_root}"
97-
${vulkan_sdk_installer} --root "${install_root}" --accept-licenses --default-answer --confirm-command install
99+
"${vulkan_sdk_installer}" --root "${install_root}" --accept-licenses --default-answer --confirm-command install
100+
}
101+
102+
function validate_vulkan_sdk_installation() {
103+
if [[ ! -d "${root_dir}/${vulkan_sdk_bin_dir}" ]]; then
104+
return 1
105+
fi
106+
107+
vulkan_sdk_bin_path="$(cd "${root_dir}/${vulkan_sdk_bin_dir}" && pwd)"
108+
if [[ ! -x "${vulkan_sdk_bin_path}/glslc" ]]; then
109+
return 1
110+
fi
111+
112+
"${vulkan_sdk_bin_path}/glslc" --version > /dev/null 2>&1
98113
}
99114

100115
function setup_vulkan_sdk() {
101116
cd "${root_dir}"
102117

118+
if validate_vulkan_sdk_installation; then
119+
log_step "vulkan" "Reusing Vulkan SDK at ${root_dir}/${vulkan_sdk_base_dir}/${vulkan_sdk_version}"
120+
log_step "vulkan" "Vulkan SDK validation (glslc) succeeded"
121+
return
122+
fi
123+
103124
if [[ "${os_name}" == "Darwin" ]]; then
104125
install_vulkan_sdk_macos
105126
else
@@ -117,11 +138,11 @@ function setup_vulkan_sdk() {
117138
exit 1
118139
fi
119140

120-
if ${vulkan_sdk_bin_path}/glslc --version > /dev/null 2>&1; then
141+
if "${vulkan_sdk_bin_path}/glslc" --version > /dev/null 2>&1; then
121142
log_step "vulkan" "Vulkan SDK validation (glslc) succeeded"
122143
else
123144
log_step "vulkan" "Error: Vulkan SDK validation failed"
124-
${vulkan_sdk_bin_path}/glslc --version
145+
"${vulkan_sdk_bin_path}/glslc" --version
125146
exit 1
126147
fi
127148
}
@@ -143,7 +164,7 @@ function setup_path_vulkan() {
143164
vulkan_sdk_arch_root="$(cd "${vulkan_sdk_arch_root}" && pwd)"
144165
vulkan_sdk_bin_path="$(cd "${vulkan_sdk_bin_dir}" && pwd)"
145166

146-
append_env_in_setup_path PATH ${vulkan_sdk_bin_path}
167+
append_env_in_setup_path PATH "${vulkan_sdk_bin_path}"
147168
if [[ "${OS:-}" == "Darwin" ]]; then
148169
prepend_env_in_setup_path DYLD_LIBRARY_PATH "${vulkan_sdk_arch_root}/lib"
149170
local moltenvk_icd_path="${vulkan_sdk_arch_root}/share/vulkan/icd.d/MoltenVK_icd.json"

0 commit comments

Comments
 (0)