- Fix Cyberpunk 2077 preset-K black artifacts by preserving FP16/FP64 denormal requirements while limiting denormal suppression to FP32. - Fix stale direct-output redirects after array destruction, preventing reused handles from inheriting an earlier feature's output buffer. - Log rejected resource formats and dimensions, including failures after startup, with rate limiting for repeated errors. - Add opt-in blocking output synchronization with a dedicated bridge export and fallback to context synchronization. - Report output-wait CPU and wall time, and defer GPU timing queries until asynchronous evaluation has completed. The CPU-overhead mitigation for #7 still needs reporter confirmation. - Reject release libraries requiring GLIBC newer than the configured baseline, defaulting to 2.41, and document compatible builds. Validation: shim and bridge builds pass; targeted redirect-lifetime and format-logging checks pass. Fixes #5 Fixes #8 Refs #7
33 lines
1.1 KiB
Bash
Executable File
33 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Reject Linux release libraries that need a newer GLIBC than the target runtime.
|
|
# Usage: check_glibc_compat.sh MAX_GLIBC LIBRARY [LIBRARY ...]
|
|
set -euo pipefail
|
|
|
|
if [[ $# -lt 2 || ! "$1" =~ ^[0-9]+\.[0-9]+$ ]]; then
|
|
printf 'usage: %s MAX_GLIBC LIBRARY [LIBRARY ...]\n' "$0" >&2
|
|
exit 2
|
|
fi
|
|
max="GLIBC_$1"
|
|
shift
|
|
command -v readelf >/dev/null || { echo 'readelf is required to check GLIBC compatibility' >&2; exit 2; }
|
|
|
|
failed=0
|
|
for library in "$@"; do
|
|
if [[ ! -f "$library" ]]; then
|
|
printf 'missing library: %s\n' "$library" >&2
|
|
failed=1
|
|
continue
|
|
fi
|
|
if ! versions="$(readelf -W --version-info "$library" 2>&1)"; then
|
|
printf 'cannot inspect %s: %s\n' "$library" "$versions" >&2
|
|
failed=1
|
|
continue
|
|
fi
|
|
required="$(printf '%s\n' "$versions" | grep -Eo 'GLIBC_[0-9]+\.[0-9]+' | sort -Vu | tail -1 || true)"
|
|
if [[ -n "$required" && "$(printf '%s\n%s\n' "$max" "$required" | sort -Vu | tail -1)" != "$max" ]]; then
|
|
printf '%s requires %s (target: at most %s)\n' "$library" "$required" "$max" >&2
|
|
failed=1
|
|
fi
|
|
done
|
|
exit "$failed"
|