#!/usr/bin/env bash
# COMPUTE SPV bring-only · glslang → SPIR-V · NO PYTHON
set -euo pipefail
HERE="$(cd "$(dirname "$0")" && pwd)"
SHADERS="$HERE/shaders"
OUT="$HERE/spv"
DC="$HERE/../datacenter/spvs"
mkdir -p "$OUT"
command -v glslangValidator >/dev/null || { echo "need glslangValidator"; exit 1; }

shopt -s nullglob
n=0
for f in "$SHADERS"/*.comp; do
  base="$(basename "$f" .comp)"
  dest="$OUT/${base}.spv"
  glslangValidator -V -S comp -o "$dest" "$f"
  echo "SPV $dest"
  # mirror into datacenter hotswap folder as .comp source (engine loads .comp)
  cp -f "$f" "$DC/${base}.comp"
  cp -f "$dest" "$DC/${base}.spv" 2>/dev/null || true
  n=$((n + 1))
done
# keep raymarch name for engine default path
if [[ -f "$SHADERS/raymarch_gl.comp" ]]; then
  glslangValidator -V -S comp -o "$OUT/raymarch.spv" "$SHADERS/raymarch_gl.comp"
  cp -f "$SHADERS/raymarch_gl.comp" "$DC/raymarch.comp"
  cp -f "$OUT/raymarch.spv" "$DC/raymarch.spv"
  echo "SPV $OUT/raymarch.spv"
fi
echo "BUILD $n compute SPVs · no python · linear BGS→BGF · free rides"
ls -la "$OUT"
ls -la "$DC"
