Files
2026-06-14 19:09:18 +01:00

171 lines
12 KiB
Bash
Executable File

#! /bin/bash
# -*- tab-width: 4; -*-
# vi: set sw=2 ts=4:
# Regenerate the reference files for toktx-tests.
# Copyright 2017 The Khronos Group Inc.
# SPDX-License-Identifier: Apache-2.0
# Depth of this script relative to the project root
depth=../..
# Change dir to the testimages folder, the script location...
cd $(dirname $0)
# Ensure generation is not polluted by user environment
unset TOKTX_OPTIONS
function usage() {
echo "Usage: $0 [--bindir <path/to/tools/bindir>]"
exit 1
}
function check_exec() {
if [ -z "$1" -o ! -x "$1" ]; then
echo "$0: $1 not found."
exit 1
fi
}
if [ "$1" = "--bindir" ]; then
shift
if [ $# -eq 1 ]; then
bindir=$1
toktx=$bindir/toktx
ktxsc=$bindir/ktxsc
ktx2ktx2=$bindir/ktx2ktx2
shift
check_exec $toktx
check_exec $ktxsc
check_exec $ktx2ktx2
else
usage
fi
fi
if [ $# -gt 0 ]; then
usage
fi
function check_path() {
if which $1 >/dev/null; then
#declare -g $1="$1" # For recent versions of bash.
eval "$1=\$1"
else
echo "$1 not found in $PATH."
exit 1
fi
}
if [ -z "$toktx" ]; then
check_path toktx
fi
if [ -z "$ktxsc" ]; then
check_path ktxsc
fi
if [ -z "$ktx2ktx2" ]; then
check_path ktx2ktx2
fi
# Generate the reference files for toktx and sctests ...
$toktx --lower_left_maps_to_s0t0 --nometadata rgb-reference.ktx ../srcimages/rgb.ppm
# The purpose of this is testing automatic mipmap generation. Since SRGB is
# not color renderable on ES3 or WebGL, therefore AMG won't work, use linear.
$toktx --automipmap --lower_left_maps_to_s0t0 --nometadata --linear rgb-amg-reference.ktx ../srcimages/rgb.ppm
$toktx --lower_left_maps_to_s0t0 --nometadata orient-up.ktx ../srcimages/up.ppm
$toktx --lower_left_maps_to_s0t0 orient-up-metadata.ktx ../srcimages/up.ppm
$toktx orient-down-metadata.ktx ../srcimages/up.ppm
$toktx --lower_left_maps_to_s0t0 --mipmap --nometadata rgb-mipmap-reference.ktx ../srcimages/level0.ppm ../srcimages/level1.ppm ../srcimages/level2.ppm ../srcimages/level3.ppm ../srcimages/level4.ppm ../srcimages/level5.ppm ../srcimages/level6.ppm
$toktx --lower_left_maps_to_s0t0 --nometadata rgba-reference.ktx ../srcimages/rgba.pam
$toktx --bcmp --test alpha_simple_basis.ktx2 ../srcimages/alpha_simple.png
$toktx --bcmp --test kodim17_basis.ktx2 ../srcimages/kodim17.png
$toktx --bcmp --test color_grid_basis.ktx2 ../srcimages/color_grid.png
$toktx --t2 --bcmp --mipmap --test rgba-mipmap-reference-basis.ktx2 ../srcimages/level0-alpha.pam ../srcimages/level1-alpha.pam ../srcimages/level2-alpha.pam ../srcimages/level3-alpha.pam ../srcimages/level4-alpha.pam ../srcimages/level5-alpha.pam ../srcimages/level6-alpha.pam
$toktx --uastc --genmipmap --test cimg5293_uastc.ktx2 ../srcimages/CIMG5293.jpg
$toktx --zcmp --uastc --genmipmap --test cimg5293_uastc_zstd.ktx2 ../srcimages/CIMG5293.jpg
$toktx --nowarn --bcmp --test camera_camera_BaseColor_basis.ktx2 ../srcimages/camera_camera_BaseColor_16bit.png
$toktx --nowarn --uastc 1 --test camera_camera_BaseColor_uastc.ktx2 ../srcimages/camera_camera_BaseColor_16bit.png
$toktx --nowarn --bcmp --test CesiumLogoFlat.ktx2 ../srcimages/CesiumLogoFlat_palette.png
$toktx --nowarn --t2 --test tbrn2c08.ktx2 ../srcimages/tbrn2c08.png
$toktx --nowarn --t2 --test tbyn3p08.ktx2 ../srcimages/tbyn3p08.png
$toktx --nowarn --t2 --test tm3n3p02.ktx2 ../srcimages/tm3n3p02.png
$toktx --nowarn --t2 --test --convert_oetf linear luminance_reference_u.ktx2 ../srcimages/luminance.pgm
$toktx --nowarn --t2 --test --uastc -- luminance_reference_uastc.ktx2 ../srcimages/luminance.pgm
$toktx --nowarn --t2 --test --bcmp luminance_reference_basis.ktx2 ../srcimages/luminance.pgm
$toktx --nowarn --t2 --test luminance_alpha_reference_u.ktx2 ../srcimages/basn4a08.png
$toktx --nowarn --t2 --test --uastc -- luminance_alpha_reference_uastc.ktx2 ../srcimages/basn4a08.png
$toktx --nowarn --t2 --test --bcmp luminance_alpha_reference_basis.ktx2 ../srcimages/basn4a08.png
$toktx --nowarn --t2 --test --convert_oetf linear --target_type R r_reference_u.ktx2 ../srcimages/luminance.pgm
$toktx --nowarn --t2 --test --target_type R --swizzle r001 --uastc -- r_reference_uastc.ktx2 ../srcimages/luminance.pgm
$toktx --nowarn --t2 --test --target_type R --swizzle r001 --bcmp r_reference_basis.ktx2 ../srcimages/luminance.pgm
$toktx --nowarn --t2 --test --target_type RG rg_reference_u.ktx2 ../srcimages/basn4a08.png
$toktx --nowarn --t2 --test --target_type RG --swizzle rg01 --uastc -- rg_reference_uastc.ktx2 ../srcimages/basn4a08.png
$toktx --nowarn --t2 --test --target_type RG --swizzle ra01 --bcmp rg_reference_basis.ktx2 ../srcimages/basn4a08.png
# Input to the following is a red RGB texture.
$toktx --nowarn --t2 --test --input_swizzle 0r01 green_rgb_reference_u.ktx2 ../srcimages/level0.ppm
$toktx --nowarn --t2 --test --input_swizzle 0rr1 --target_type RGBA cyan_rgba_reference_u.ktx2 ../srcimages/level0.ppm
# BasisU encoders notice that alpha is all 1 and removes it, hence RGB output for these.
$toktx --nowarn --t2 --test --input_swizzle 0rr1 --target_type RGBA --bcmp cyan_rgb_reference_basis.ktx2 ../srcimages/level0.ppm
$toktx --nowarn --t2 --test --input_swizzle 0rr1 --target_type RGBA --uastc -- cyan_rgb_reference_uastc.ktx2 ../srcimages/level0.ppm
$toktx --nowarn --t2 --test --assign_oetf linear --genmipmap --normalize --normal_mode --encode uastc --zcmp 5 uastc_Iron_Bars_001_normal.ktx2 ../srcimages/Iron_Bars/Iron_Bars_001_normal_unnormalized.png
$toktx --nowarn --t2 --test --assign_oetf linear --genmipmap --normalize --normal_mode --encode etc1s etc1s_Iron_Bars_001_normal.ktx2 ../srcimages/Iron_Bars/Iron_Bars_001_normal_unnormalized.png
# ... and additional files for the load tests.
$toktx --lower_left_maps_to_s0t0 rgb-reference-metadata.ktx ../srcimages/rgb.ppm
# generate astc reference images
$toktx --test --encode astc --astc_blk_d 6x6 --genmipmap --cubemap astc_mipmap_ldr_cubemap_6x6.ktx2 ../srcimages/Yokohama3/posx.jpg ../srcimages/Yokohama3/negx.jpg ../srcimages/Yokohama3/posy.jpg ../srcimages/Yokohama3/negy.jpg ../srcimages/Yokohama3/posz.jpg ../srcimages/Yokohama3/negz.jpg
$toktx --test --encode astc --astc_blk_d 6x6 --cubemap astc_ldr_cubemap_6x6.ktx2 ../srcimages/Yokohama3/posx.jpg ../srcimages/Yokohama3/negx.jpg ../srcimages/Yokohama3/posy.jpg ../srcimages/Yokohama3/negy.jpg ../srcimages/Yokohama3/posz.jpg ../srcimages/Yokohama3/negz.jpg
$toktx --test --encode astc --astc_blk_d 6x6 --genmipmap astc_mipmap_ldr_6x6_posx.ktx2 ../srcimages/Yokohama3/posx.jpg
$toktx --test --encode astc --astc_blk_d 6x6 astc_ldr_6x6_posx.ktx2 ../srcimages/Yokohama3/posx.jpg
$toktx --test --encode astc --astc_blk_d 6x6 --genmipmap astc_mipmap_ldr_6x6_posz.ktx2 ../srcimages/Yokohama3/posz.jpg
$toktx --test --encode astc --astc_blk_d 6x6 --genmipmap astc_mipmap_ldr_6x6_posy.ktx2 ../srcimages/Yokohama3/posy.jpg
$toktx --test --encode astc --astc_blk_d 6x6 --genmipmap --astc_quality fastest astc_mipmap_ldr_6x6_kodim17_fastest.ktx2 ../srcimages/kodim17.png
$toktx --test --encode astc --astc_blk_d 6x6 --genmipmap --astc_quality fast astc_mipmap_ldr_6x6_kodim17_fast.ktx2 ../srcimages/kodim17.png
$toktx --test --encode astc --astc_blk_d 6x6 --genmipmap --astc_quality medium astc_mipmap_ldr_6x6_kodim17_medium.ktx2 ../srcimages/kodim17.png
$toktx --test --encode astc --astc_blk_d 4x4 --genmipmap astc_mipmap_ldr_4x4_posx.ktx2 ../srcimages/Yokohama3/posx.jpg
$toktx --test --encode astc --astc_blk_d 6x5 --genmipmap astc_mipmap_ldr_6x5_posx.ktx2 ../srcimages/Yokohama3/posx.jpg
$toktx --test --encode astc --astc_blk_d 8x6 --genmipmap astc_mipmap_ldr_8x6_posx.ktx2 ../srcimages/Yokohama3/posx.jpg
$toktx --test --encode astc --astc_blk_d 10x5 --genmipmap astc_mipmap_ldr_10x5_posx.ktx2 ../srcimages/Yokohama3/posx.jpg
$toktx --test --encode astc --astc_blk_d 8x8 --genmipmap astc_mipmap_ldr_8x8_posx.ktx2 ../srcimages/Yokohama3/posx.jpg
$toktx --test --encode astc --astc_blk_d 12x10 --genmipmap astc_mipmap_ldr_12x10_posx.ktx2 ../srcimages/Yokohama3/posx.jpg
$toktx --test --encode astc --astc_blk_d 12x12 --genmipmap astc_mipmap_ldr_12x12_posx.ktx2 ../srcimages/Yokohama3/posx.jpg
$toktx --test --encode astc --astc_blk_d 4x4 astc_ldr_4x4_FlightHelmet_baseColor.ktx2 ../srcimages/FlightHelmet_baseColor.png
$toktx --test --encode astc --astc_blk_d 6x5 astc_ldr_6x5_FlightHelmet_baseColor.ktx2 ../srcimages/FlightHelmet_baseColor.png
$toktx --test --encode astc --astc_blk_d 8x6 astc_ldr_8x6_FlightHelmet_baseColor.ktx2 ../srcimages/FlightHelmet_baseColor.png
$toktx --test --encode astc --astc_blk_d 10x5 astc_ldr_10x5_FlightHelmet_baseColor.ktx2 ../srcimages/FlightHelmet_baseColor.png
$toktx --test --encode astc --astc_blk_d 8x8 astc_ldr_8x8_FlightHelmet_baseColor.ktx2 ../srcimages/FlightHelmet_baseColor.png
$toktx --test --encode astc --astc_blk_d 12x10 astc_ldr_12x10_FlightHelmet_baseColor.ktx2 ../srcimages/FlightHelmet_baseColor.png
$toktx --test --encode astc --astc_blk_d 12x12 astc_ldr_12x12_FlightHelmet_baseColor.ktx2 ../srcimages/FlightHelmet_baseColor.png
$toktx --test --assign_oetf linear --normalize --normal_mode --encode astc --astc_blk_d 6x6 astc_ldr_6x6_Iron_Bars_001_normal.ktx2 ../srcimages/Iron_Bars/Iron_Bars_001_normal_unnormalized.png
$toktx --test --assign_oetf linear --normalize --normal_mode --encode astc --astc_blk_d 5x4 astc_ldr_5x4_Iron_Bars_001_normal.ktx2 ../srcimages/Iron_Bars/Iron_Bars_001_normal_unnormalized.png
$toktx --test --layers 7 --encode astc --astc_blk_d 6x6 astc_ldr_6x6_arraytex_7.ktx2 ../srcimages/red16.png ../srcimages/orange16.png ../srcimages/yellow16.png ../srcimages/green16.png ../srcimages/blue16.png ../srcimages/indigo16.png ../srcimages/violet16.png
$toktx --test --layers 7 --encode astc --astc_blk_d 6x6 --genmipmap astc_ldr_6x6_arraytex_7_mipmap.ktx2 ../srcimages/red16.png ../srcimages/orange16.png ../srcimages/yellow16.png ../srcimages/green16.png ../srcimages/blue16.png ../srcimages/indigo16.png ../srcimages/violet16.png
$toktx --test --depth 7 --encode astc --astc_blk_d 6x6 astc_ldr_6x6_3dtex_7.ktx2 ../srcimages/red16.png ../srcimages/orange16.png ../srcimages/yellow16.png ../srcimages/green16.png ../srcimages/blue16.png ../srcimages/indigo16.png ../srcimages/violet16.png
$toktx --test --layers 1 --t2 arraytex_1_reference_u.ktx2 ../srcimages/red16.png
$toktx --test --depth 1 --t2 3dtex_1_reference_u.ktx2 ../srcimages/red16.png
$toktx --test --depth 7 --t2 3dtex_7_reference_u.ktx2 ../srcimages/red16.png ../srcimages/orange16.png ../srcimages/yellow16.png ../srcimages/green16.png ../srcimages/blue16.png ../srcimages/indigo16.png ../srcimages/violet16.png
$toktx --test --layers 7 --t2 arraytex_7_reference_u.ktx2 ../srcimages/red16.png ../srcimages/orange16.png ../srcimages/yellow16.png ../srcimages/green16.png ../srcimages/blue16.png ../srcimages/indigo16.png ../srcimages/violet16.png
$toktx --test --depth 7 --t2 3dtex_7_reference_u.ktx2 ../srcimages/red16.png ../srcimages/orange16.png ../srcimages/yellow16.png ../srcimages/green16.png ../srcimages/blue16.png ../srcimages/indigo16.png ../srcimages/violet16.png
$toktx --test --layers 7 --genmipmap --t2 arraytex_7_mipmap_reference_u.ktx2 ../srcimages/red16.png ../srcimages/orange16.png ../srcimages/yellow16.png ../srcimages/green16.png ../srcimages/blue16.png ../srcimages/indigo16.png ../srcimages/violet16.png
$ktxsc -o skybox_zstd.ktx2 --force --test --zcmp 5 skybox.ktx2
for name in hűtő نَسِيج テクスチャ 质地 조직; do
$toktx --test $name.ktx ../srcimages/$name.png
$ktx2ktx2 --test --force -o $name.ktx2 $name.ktx
$ktxsc --test -o ${name}_zstd.ktx2 --force --zcmp 5 $name.ktx2
done