xref: /aosp_15_r20/external/mesa3d/src/gfxstream/codegen/generate-gfxstream-vulkan.sh (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker#!/bin/bash
2*61046927SAndroid Build Coastguard Worker# Copyright 2022 Android Open Source Project
3*61046927SAndroid Build Coastguard Worker# SPDX-License-Identifier: MIT
4*61046927SAndroid Build Coastguard Worker
5*61046927SAndroid Build Coastguard Worker# Please run this from the Mesa codegen directory
6*61046927SAndroid Build Coastguard Worker# >> cd ${mesa_dir}/src/gfxstream/codegen
7*61046927SAndroid Build Coastguard Worker# >> ./generate-gfxstream-vulkan.sh ${gfxstream_dir}
8*61046927SAndroid Build Coastguard Worker#
9*61046927SAndroid Build Coastguard Worker# Note in AOSP, ${gfxstream_dir} is optional, and the script autodetects the
10*61046927SAndroid Build Coastguard Worker# path to gfxstream.
11*61046927SAndroid Build Coastguard Worker
12*61046927SAndroid Build Coastguard Workerexport MESA_DIR="$PWD/../../.."
13*61046927SAndroid Build Coastguard Workerif [ -z "$1" ];
14*61046927SAndroid Build Coastguard Workerthen
15*61046927SAndroid Build Coastguard Worker    export GFXSTREAM_DIR="$MESA_DIR/../../hardware/google/gfxstream"
16*61046927SAndroid Build Coastguard Workerelse
17*61046927SAndroid Build Coastguard Worker    export GFXSTREAM_DIR="$1"
18*61046927SAndroid Build Coastguard Workerfi
19*61046927SAndroid Build Coastguard Worker
20*61046927SAndroid Build Coastguard Workerexport PREFIX_DIR="src/gfxstream"
21*61046927SAndroid Build Coastguard Worker
22*61046927SAndroid Build Coastguard Worker# We should use just use one vk.xml eventually..
23*61046927SAndroid Build Coastguard Workerexport VK_MESA_XML="$MESA_DIR/src/vulkan/registry/vk.xml"
24*61046927SAndroid Build Coastguard Workerexport VK_XML="$GFXSTREAM_DIR/codegen/vulkan/vulkan-docs-next/xml/vk.xml"
25*61046927SAndroid Build Coastguard Worker
26*61046927SAndroid Build Coastguard Workerexport GFXSTREAM_GUEST_ENCODER_DIR="/tmp/"
27*61046927SAndroid Build Coastguard Workerexport GFXSTREAM_HOST_DECODER_DIR="$GFXSTREAM_DIR/host/vulkan"
28*61046927SAndroid Build Coastguard Workerexport GFXSTREAM_OUTPUT_DIR="$GFXSTREAM_HOST_DECODER_DIR/cereal"
29*61046927SAndroid Build Coastguard Workerexport GFXSTREAM_SCRIPTS_DIR="$GFXSTREAM_DIR/scripts"
30*61046927SAndroid Build Coastguard Worker
31*61046927SAndroid Build Coastguard Workerexport GEN_VK="$MESA_DIR/$PREFIX_DIR/codegen/scripts/genvk.py"
32*61046927SAndroid Build Coastguard Workerexport CUSTOM_XML="$MESA_DIR/$PREFIX_DIR/codegen/xml/vk_gfxstream.xml"
33*61046927SAndroid Build Coastguard Worker
34*61046927SAndroid Build Coastguard Workerpython3 "$GEN_VK" -registry "$VK_XML" -registryGfxstream "$CUSTOM_XML" cereal -o "$GFXSTREAM_OUTPUT_DIR"
35*61046927SAndroid Build Coastguard Worker
36*61046927SAndroid Build Coastguard Workerexport CEREAL_VARIANT=guest
37*61046927SAndroid Build Coastguard Workerexport GFXSTREAM_GUEST_ENCODER_DIR="$MESA_DIR/src/gfxstream/guest/vulkan_enc"
38*61046927SAndroid Build Coastguard Workerpython3 "$GEN_VK" -registry "$VK_MESA_XML" -registryGfxstream "$CUSTOM_XML" cereal -o /tmp/
39*61046927SAndroid Build Coastguard Worker
40*61046927SAndroid Build Coastguard Worker# Should have a unified headers dir here:
41*61046927SAndroid Build Coastguard Workerpython3 "$GEN_VK" -registry "$CUSTOM_XML" vulkan_gfxstream.h -o "$GFXSTREAM_GUEST_ENCODER_DIR"
42*61046927SAndroid Build Coastguard Workerpython3 "$GEN_VK" -registry "$CUSTOM_XML" vulkan_gfxstream.h -o "$GFXSTREAM_HOST_DECODER_DIR"
43