ba74bbd5aa
Per-vertex GS fog end-to-end (gs_stub emit incl. persp_emit5, gs_prim_list_feeder XYZ2->XYZF2 on PRIM.FGE, gs_make_sh3_scheduler_fixture.py F/FGE packing), new fog TBs, fidelity attribution tooling. Functional baseline before removing the dead bilinear lerp8 clamps (Codex: 161-node comb loop -> -0.042ns setup fail). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
68 lines
3.3 KiB
Bash
Executable File
68 lines
3.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# retroDE_ps2 — copy the Ch360 shared-texture persistent-Z NATIVE-640x480 board files to the DE25.
|
|
#
|
|
# This is the C12 file set (sh3_zs640c12_epochs.txt, fbpxw 640 fbh 480): twelve authentic SH3 draws in FOUR ordered,
|
|
# shared-texture epochs at native screen coordinates. The C12 bootlet words are byte-identical to the loaded C6 RBF's
|
|
# bootlet words, so no re-fit is needed. Copies go to the home dir so the host can resolve relative texture/list paths.
|
|
#
|
|
# ./tools/scp_zs640c12_to_board.sh # default terasic@192.168.50.161:~
|
|
# ./tools/scp_zs640c12_to_board.sh user@host:dir # override destination
|
|
#
|
|
# STEP 0 — CONFIRM THE C6-SIGNOFF CORE IS LIVE. This script copies the 7 host/data files ONLY, NOT the RBF.
|
|
# C12 reuses its exact bootlet memory words. The host run must report four epochs, one fill, three reuses, and zero drops.
|
|
#
|
|
# On the board afterward (persistent-Z needs --zbuf: preclear the LPDDR Z region + arm EARLY):
|
|
# gcc -O2 -o ps2_sh3_sched ps2_sh3_sched.c
|
|
# sudo ./ps2_sh3_sched --zbuf sh3_zs640c12_epochs.txt
|
|
#
|
|
# Board framebuffer readback for the Ch360 C12 board proof (PSMCT32 linear, 640x480):
|
|
# sudo ./ps2_sh3_sched --zbuf sh3_zs640c12_epochs.txt --dump-fb sh3_zs640c12_board_fb.mem
|
|
# scp terasic@192.168.50.161:~/sh3_zs640c12_board_fb.mem sim/data/top_psmct32_raster_demo/
|
|
# python3 tools/gs_fb_to_png.py sim/data/top_psmct32_raster_demo/sh3_zs640c12_board_fb.mem \
|
|
# sim/data/top_psmct32_raster_demo/sh3_zs640c12_board_fb.png 640 480 3
|
|
# make -C sim sh3_zs640c12_board_compare
|
|
#
|
|
# Exact emitted-fragment color replay (also run by sh3_zs640c12_board_compare):
|
|
# python3 tools/analyze_zsched_fb.py sim/data/top_psmct32_raster_demo/sh3_zs640c12_board_fb.mem \
|
|
# --tag zs640c12 --owner replay-color --frags sim/traces/rtl/zs640c12_frags.txt
|
|
#
|
|
# Regenerate the LOCAL zs640c12 fixtures with the signoff reference contract:
|
|
# make -C sim sh3_zs640c12_fixture
|
|
# Equivalent explicit emit:
|
|
# python3 tools/gs_make_sh3_scheduler_fixture.py --draw-list 119471,119684,119897,120110,120323,120536,120749,120962,121175,121388,121601,121814 --group-size 3 --authz --fb640 --tag zs640c12 \
|
|
# --pscale 1024,1024,1024,1024 --xy-quant round,round,round,round --ref-xy-quant --emit
|
|
set -eu
|
|
|
|
DEST="${1:-terasic@192.168.50.161:~}"
|
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|
DATA="$ROOT/sim/data/top_psmct32_raster_demo"
|
|
|
|
FILES="
|
|
$ROOT/tools/ps2_sh3_sched.c
|
|
$DATA/sh3_zs640c12_epochs.txt
|
|
$DATA/sh3_zs640c120_tex_lpddr.mem
|
|
$DATA/feeder_sh3_zs640c120.mem
|
|
$DATA/feeder_sh3_zs640c121.mem
|
|
$DATA/feeder_sh3_zs640c122.mem
|
|
$DATA/feeder_sh3_zs640c123.mem
|
|
"
|
|
|
|
missing=0
|
|
for f in $FILES; do
|
|
if [ ! -f "$f" ]; then echo "MISSING: $f" >&2; missing=1; fi
|
|
done
|
|
if [ "$missing" -ne 0 ]; then
|
|
echo "" >&2
|
|
echo "Regenerate the LOCAL zs640c12 fixtures first (dump-derived, local-only):" >&2
|
|
echo " make -C sim sh3_zs640c12_fixture" >&2
|
|
echo " # or:" >&2
|
|
echo " python3 tools/gs_make_sh3_scheduler_fixture.py --draw-list 119471,119684,119897,120110,120323,120536,120749,120962,121175,121388,121601,121814 --group-size 3 --authz --fb640 --tag zs640c12 \\" >&2
|
|
echo " --pscale 1024,1024,1024,1024 --xy-quant round,round,round,round --ref-xy-quant --emit" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Copying 7 files -> $DEST (one password prompt):"
|
|
for f in $FILES; do echo " $(basename "$f")"; done
|
|
# shellcheck disable=SC2086
|
|
exec scp $FILES "$DEST"
|