#!/usr/bin/env bash
# mtt-gl32 — run an app's OpenGL on the MTT S80 via zink over the 32->64-bit bridge.
#
# Layers Mesa's zink (GL-on-Vulkan) on the Venus vtest ICD, so 32-bit OpenGL apps
# get hardware GL through the mtt-vk32bridge backend (which must be running:
# `systemctl --user enable --now mtt-vk32bridge.service`). Needs the spirv-opt
# layer built into the bridge (BUG 1) or shaders may crash the MUSA compiler.
#
# Usage: mtt-gl32 <app> [args...]
set -euo pipefail
ICDS="/usr/lib/mtt-vk32bridge/icd/mtt_virtio_i686.json:/usr/lib/mtt-vk32bridge/icd/mtt_virtio_x86_64.json"
export __GLX_VENDOR_LIBRARY_NAME=mesa
export MESA_LOADER_DRIVER_OVERRIDE=zink
export VN_DEBUG=vtest
export VK_ICD_FILENAMES="$ICDS"
export VK_DRIVER_FILES="$ICDS"
exec "$@"
