Initial commit: VKZip GPU Compressor
This commit is contained in:
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
# Compile GLSL compute shaders to SPIR-V
|
||||
# Requires glslc (from Vulkan SDK) or glslangValidator
|
||||
|
||||
SHADER_DIR="$(dirname "$0")"
|
||||
OUTPUT_DIR="${1:-$SHADER_DIR}"
|
||||
|
||||
# Find compiler
|
||||
if command -v glslc &> /dev/null; then
|
||||
COMPILER="glslc"
|
||||
compile() { $COMPILER -o "$2" "$1"; }
|
||||
elif command -v glslangValidator &> /dev/null; then
|
||||
COMPILER="glslangValidator"
|
||||
compile() { $COMPILER -V -o "$2" "$1"; }
|
||||
else
|
||||
echo "ERROR: No GLSL compiler found!"
|
||||
echo "Install Vulkan SDK: https://vulkan.lunarg.com/sdk/home"
|
||||
echo " Ubuntu/Debian: sudo apt install vulkan-tools glslang-tools"
|
||||
echo " Arch: sudo pacman -S vulkan-tools glslang"
|
||||
echo " Fedora: sudo dnf install vulkan-tools glslang"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Using compiler: $COMPILER"
|
||||
echo "Output directory: $OUTPUT_DIR"
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
for shader in "$SHADER_DIR"/*.comp; do
|
||||
if [ -f "$shader" ]; then
|
||||
name=$(basename "$shader")
|
||||
output="$OUTPUT_DIR/${name}.spv"
|
||||
echo " Compiling $name -> ${name}.spv"
|
||||
compile "$shader" "$output"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo " FAILED: $name"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
echo "All shaders compiled successfully!"
|
||||
Reference in New Issue
Block a user