rs2spirv_driver.sh revision 6749f541c20e86f5deb6fd421ed5849ef43c275c
16749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# Copyright 2016, The Android Open Source Project
26749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#
36749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# Licensed under the Apache License, Version 2.0 (the "License");
46749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# you may not use this file except in compliance with the License.
56749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# You may obtain a copy of the License at
66749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#
76749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#     http://www.apache.org/licenses/LICENSE-2.0
86749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#
96749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# Unless required by applicable law or agreed to in writing, software
106749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# distributed under the License is distributed on an "AS IS" BASIS,
116749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
126749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# See the License for the specific language governing permissions and
136749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni# limitations under the License.
146749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
156749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni#!/bin/bash
166749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
176749f541c20e86f5deb6fd421ed5849ef43c275cYang Niif [ $# -lt 3 ]; then
186749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni  echo 1>&2 "$0: not enough arguments"
196749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni  echo 1>&2 $#
206749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni  exit 2
216749f541c20e86f5deb6fd421ed5849ef43c275cYang Nifi
226749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
236749f541c20e86f5deb6fd421ed5849ef43c275cYang NiAND_HOME=$ANDROID_BUILD_TOP
246749f541c20e86f5deb6fd421ed5849ef43c275cYang NiSPIRV_TOOLS_PATH=$1
256749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
266749f541c20e86f5deb6fd421ed5849ef43c275cYang Niscript_name="$2"
276749f541c20e86f5deb6fd421ed5849ef43c275cYang Niscript=${2%.*} # Remove extension.
286749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
296749f541c20e86f5deb6fd421ed5849ef43c275cYang Nioutput_folder="$3"
306749f541c20e86f5deb6fd421ed5849ef43c275cYang Nimkdir -p $output_folder
316749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni
326749f541c20e86f5deb6fd421ed5849ef43c275cYang Nieval llvm-rs-cc -o "$output_folder" -S -emit-llvm -Wall -Werror -target-api 24 \
336749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni  -I "$AND_HOME/external/clang/lib/Headers" -I "$AND_HOME/frameworks/rs/scriptc" \
346749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni  "$script_name"
356749f541c20e86f5deb6fd421ed5849ef43c275cYang Nieval llvm-as "$output_folder/bc32/$script.ll" -o "$output_folder/$script.bc"
366749f541c20e86f5deb6fd421ed5849ef43c275cYang Nieval rs2spirv "$output_folder/$script.bc" -o "$output_folder/$script.rs.spv" \
376749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni              -wo "$output_folder/$script.w.spt" -debug
386749f541c20e86f5deb6fd421ed5849ef43c275cYang Nieval "$SPIRV_TOOLS_PATH/spirv-dis" "$output_folder/$script.rs.spv" \
396749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni              --no-color > "$output_folder/$script.rs.spt"
406749f541c20e86f5deb6fd421ed5849ef43c275cYang Nieval rs2spirv -o "$output_folder/$script.spt" -lk "$output_folder/$script.rs.spt" \
416749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni              -lw "$output_folder/$script.w.spt" -debug
426749f541c20e86f5deb6fd421ed5849ef43c275cYang Nieval "$SPIRV_TOOLS_PATH/spirv-as" "$output_folder/$script.spt" \
436749f541c20e86f5deb6fd421ed5849ef43c275cYang Ni              -o "$output_folder/$script.spv"
446749f541c20e86f5deb6fd421ed5849ef43c275cYang Niecho
456749f541c20e86f5deb6fd421ed5849ef43c275cYang Nieval rs2spirv "$output_folder/$script.spv" -print-as-words
466749f541c20e86f5deb6fd421ed5849ef43c275cYang Niecho
476749f541c20e86f5deb6fd421ed5849ef43c275cYang Nieval "$SPIRV_TOOLS_PATH/spirv-val" "$output_folder/$script.spv"
486749f541c20e86f5deb6fd421ed5849ef43c275cYang Niecho
49