16749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#!/bin/bash 26749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni 36749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# Copyright 2016, The Android Open Source Project 46749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# 56749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# Licensed under the Apache License, Version 2.0 (the "License"); 66749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# you may not use this file except in compliance with the License. 76749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# You may obtain a copy of the License at 86749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# 96749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# http://www.apache.org/licenses/LICENSE-2.0 106749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# 116749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# Unless required by applicable law or agreed to in writing, software 126749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# distributed under the License is distributed on an "AS IS" BASIS, 136749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 146749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# See the License for the specific language governing permissions and 156749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# limitations under the License. 166749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni 176749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# TODO: Consider rewriting as a native binary instead of shell script. 186749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni 196749f541c20e86f5deb6fd421ed5849ef43c275cYang Niif [ $# -lt 1 ]; then 206749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni echo 1>&2 "$0: not enough arguments" 216749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni echo 1>&2 $# 226749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni exit 2 236749f541c20e86f5deb6fd421ed5849ef43c275cYang Nifi 246749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni 256749f541c20e86f5deb6fd421ed5849ef43c275cYang Niscript_path="$1" 266749f541c20e86f5deb6fd421ed5849ef43c275cYang Niscript_name=$(basename $script_path) 276749f541c20e86f5deb6fd421ed5849ef43c275cYang Niscript=${script_name%.*} # Remove extension. 286749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni 296749f541c20e86f5deb6fd421ed5849ef43c275cYang Nioutput_folder="driver_out" 306749f541c20e86f5deb6fd421ed5849ef43c275cYang Nimkdir -p $output_folder 316749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni 325802e6279a13949aec3f0e12c0a00a2aed170f0fDavid Grosseval llvm-as "$script_path" -o "$output_folder/$script.bc" && 33bf22a8ab4f46a98ee37f95fc0402744132cc3ed2Yang Nieval rs2spirv "$output_folder/$script.bc" -o "$output_folder/$script.spv" && 34bf22a8ab4f46a98ee37f95fc0402744132cc3ed2Yang Nieval spirv-val "$output_folder/$script.spv" 35bf22a8ab4f46a98ee37f95fc0402744132cc3ed2Yang Ni 36bf22a8ab4f46a98ee37f95fc0402744132cc3ed2Yang Niif [ $? -ne 0 ]; then 37bf22a8ab4f46a98ee37f95fc0402744132cc3ed2Yang Ni echo 1>&2 "Generated SPIR-V failed validation" 38bf22a8ab4f46a98ee37f95fc0402744132cc3ed2Yang Ni exit -1 39bf22a8ab4f46a98ee37f95fc0402744132cc3ed2Yang Nifi 40bf22a8ab4f46a98ee37f95fc0402744132cc3ed2Yang Ni 41bf22a8ab4f46a98ee37f95fc0402744132cc3ed2Yang Nieval spirv-dis "$output_folder/$script.spv" 426749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni 435802e6279a13949aec3f0e12c0a00a2aed170f0fDavid GrossRET=$? 445802e6279a13949aec3f0e12c0a00a2aed170f0fDavid Gross 45bf22a8ab4f46a98ee37f95fc0402744132cc3ed2Yang Ni#eval rm "$output_folder/$script.*" 465802e6279a13949aec3f0e12c0a00a2aed170f0fDavid Gross 475802e6279a13949aec3f0e12c0a00a2aed170f0fDavid Grossexit $RET 48