xref: /aosp_15_r20/external/executorch/.ci/scripts/setup-vulkan-linux-deps.sh (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Worker
2*523fa7a6SAndroid Build Coastguard Worker#!/bin/bash
3*523fa7a6SAndroid Build Coastguard Worker# Copyright (c) Meta Platforms, Inc. and affiliates.
4*523fa7a6SAndroid Build Coastguard Worker# All rights reserved.
5*523fa7a6SAndroid Build Coastguard Worker#
6*523fa7a6SAndroid Build Coastguard Worker# This source code is licensed under the BSD-style license found in the
7*523fa7a6SAndroid Build Coastguard Worker# LICENSE file in the root directory of this source tree.
8*523fa7a6SAndroid Build Coastguard Worker
9*523fa7a6SAndroid Build Coastguard Workerset -ex
10*523fa7a6SAndroid Build Coastguard Worker
11*523fa7a6SAndroid Build Coastguard Workerinstall_swiftshader() {
12*523fa7a6SAndroid Build Coastguard Worker  _https_amazon_aws=https://ossci-android.s3.amazonaws.com
13*523fa7a6SAndroid Build Coastguard Worker  _swiftshader_archive=swiftshader-abe07b943-prebuilt.tar.gz
14*523fa7a6SAndroid Build Coastguard Worker  _swiftshader_dir=/tmp/swiftshader
15*523fa7a6SAndroid Build Coastguard Worker  mkdir -p $_swiftshader_dir
16*523fa7a6SAndroid Build Coastguard Worker
17*523fa7a6SAndroid Build Coastguard Worker  _tmp_archive="/tmp/${_swiftshader_archive}"
18*523fa7a6SAndroid Build Coastguard Worker
19*523fa7a6SAndroid Build Coastguard Worker  curl --silent --show-error --location --fail --retry 3 \
20*523fa7a6SAndroid Build Coastguard Worker    --output "${_tmp_archive}" "$_https_amazon_aws/${_swiftshader_archive}"
21*523fa7a6SAndroid Build Coastguard Worker
22*523fa7a6SAndroid Build Coastguard Worker  tar -C "${_swiftshader_dir}" -xzf "${_tmp_archive}"
23*523fa7a6SAndroid Build Coastguard Worker
24*523fa7a6SAndroid Build Coastguard Worker  export VK_ICD_FILENAMES="${_swiftshader_dir}/swiftshader/build/Linux/vk_swiftshader_icd.json"
25*523fa7a6SAndroid Build Coastguard Worker  export LD_LIBRARY_PATH="${_swiftshader_dir}/swiftshader/build/Linux/"
26*523fa7a6SAndroid Build Coastguard Worker}
27*523fa7a6SAndroid Build Coastguard Worker
28*523fa7a6SAndroid Build Coastguard Workerinstall_vulkan_sdk() {
29*523fa7a6SAndroid Build Coastguard Worker  VULKAN_SDK_VERSION=$1
30*523fa7a6SAndroid Build Coastguard Worker  _vulkan_sdk_url="https://sdk.lunarg.com/sdk/download/${VULKAN_SDK_VERSION}/linux/vulkansdk-linux-x86_64-${VULKAN_SDK_VERSION}.tar.gz"
31*523fa7a6SAndroid Build Coastguard Worker
32*523fa7a6SAndroid Build Coastguard Worker  _vulkan_sdk_dir=/tmp/vulkansdk
33*523fa7a6SAndroid Build Coastguard Worker  mkdir -p $_vulkan_sdk_dir
34*523fa7a6SAndroid Build Coastguard Worker
35*523fa7a6SAndroid Build Coastguard Worker  _tmp_archive="/tmp/vulkansdk.tar.gz"
36*523fa7a6SAndroid Build Coastguard Worker
37*523fa7a6SAndroid Build Coastguard Worker  curl --silent --show-error --location --fail --retry 3 \
38*523fa7a6SAndroid Build Coastguard Worker    --output "${_tmp_archive}" "${_vulkan_sdk_url}"
39*523fa7a6SAndroid Build Coastguard Worker
40*523fa7a6SAndroid Build Coastguard Worker  tar -C "${_vulkan_sdk_dir}" -xzf "${_tmp_archive}"
41*523fa7a6SAndroid Build Coastguard Worker
42*523fa7a6SAndroid Build Coastguard Worker  export PATH="${PATH}:${_vulkan_sdk_dir}/${VULKAN_SDK_VERSION}/x86_64/bin/"
43*523fa7a6SAndroid Build Coastguard Worker}
44*523fa7a6SAndroid Build Coastguard Worker
45*523fa7a6SAndroid Build Coastguard WorkerVULKAN_SDK_VERSION="1.2.198.1"
46*523fa7a6SAndroid Build Coastguard Worker
47*523fa7a6SAndroid Build Coastguard Workerinstall_swiftshader
48*523fa7a6SAndroid Build Coastguard Workerinstall_vulkan_sdk "${VULKAN_SDK_VERSION}"
49