Files
InstanceBrick--nightcap/scripts/resize_readiness_gate.sh
T
2026-08-12 01:58:18 +03:00

62 lines
1.7 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
if [[ "${1:-}" != "validate" || -z "${2:-}" ]]; then
echo "usage: $0 validate LOG" >&2
exit 2
fi
log="$2"
if [[ ! -f "${log}" ]]; then
echo "resize readiness log does not exist" >&2
exit 2
fi
if rg --fixed-strings --quiet \
"[window] first Roblox Vulkan frame presented" "${log}"; then
first_present_marker="[window] first Roblox Vulkan frame presented"
elif rg --fixed-strings --quiet \
"[window] first Roblox frame presented" "${log}"; then
first_present_marker="[window] first Roblox frame presented"
else
echo "resize readiness has no real host present" >&2
exit 1
fi
ordered_markers=(
"${first_present_marker}"
"[resize] SDL compositor resize requested after present="
"[resize] typed JNI surface commit generation="
"[resize] post-rebind host present backend="
"[main] Roblox lifecycle shutdown: Stopped"
"[resize] readiness completed: Stopped"
)
previous_line=0
for marker in "${ordered_markers[@]}"; do
marker_line="$(rg --fixed-strings --line-number "${marker}" "${log}" \
| cut -d: -f1 \
| awk -v previous="${previous_line}" '$1 > previous { print; exit }' \
|| true)"
if [[ -z "${marker_line}" ]]; then
echo "resize readiness order violation at marker: ${marker}" >&2
exit 1
fi
previous_line="${marker_line}"
done
if rg --fixed-strings --quiet \
"resize recreated the surface instead of preserving its generation" \
"${log}"; then
echo "resize readiness recreated the native surface" >&2
exit 1
fi
if rg --quiet '\[FATAL\]|SDL_SetWindowSize failed|resize readiness failed' \
"${log}"; then
echo "resize readiness log contains a terminal failure" >&2
exit 1
fi
echo "resize readiness: real compositor/JNI rebind verified"