mirror of
https://github.com/InstanceBrick/nightcap.git
synced 2026-10-18 12:00:48 +02:00
62 lines
1.7 KiB
Bash
Executable File
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"
|