2.2.0-neutral-motion 测试记录
执行日期:2026-09-27。编译/运行环境为 Linux x64、OpenJDK 21.0.11、Mesa llvmpipe 25.0.7-2 / LLVM 19.1.7。窗口测试使用 Xvfb;GPU 测试使用真实的 EGL/OpenGL 宿主 context。
本版新增检查
NeutralInteractionTest:37 项通过。检查黑白主题色、普通/面板半径、模糊与低反光默认值、连续小数取值、按住时的中间帧、释放时不反跳、完整两端行程、指针捕获、显式步进、整段范围平移、范围边界、横向和竖向滚动条抓取偏移、全行程分割面板、整块面板和子内容同步拖动、拖动条捕获、不同刷新率的同目标跟随和 reduced motion。
NeutralGpuTest:10 项通过。实际读取本库 shader 输出,检查灰阶输入没有偏蓝反光、反光亮度有上限、轮廓峰值位置、圆角外侧没有新增光圈、平移一致性、2x 缩放轮廓、静止帧重复一致性、旧灯光奇异点附近的连续性、强模糊的实际像素差异及浅色材质灰阶。
该测试的平坦灰色背景中,默认反光最大增量为 9/255,没有白色截断;控件与指针一起平移后对应像素最大误差为 0;轮廓峰值仍在实际上边界。重复相同输入时输出完全一致。此结果不等于已经检查任意显卡、桌面合成器或所有动画情况下的屏幕闪烁。
该测试棋盘的相邻像素差,旧 sigma=8、mix=.78、alpha=.94 配置为 11.2,新 sigma=18、mix=.98、alpha=1 配置为 0.8。它说明这一测试图的高频内容明显更模糊,不把一个测试数值推广为所有场景。
NeutralWindowTest:8 项通过。用桌面鼠标操作实际 OpenGL 展示窗口,检查整轨滑动、反向滑动、整个范围段平移、面板主体拖动、拖动条带完整内容移动、持续渲染和关闭。录制了 86 张实际窗口帧,生成 docs/continuous-drag.gif,没有用静态截图合成虚假的位移。截图/编码有开销,GIF 节奏不是硬件帧率基准。
原有回归检查
120 项逻辑检查、25 项材质/弹性动画检查、32 项真实窗口交互检查、16 项 GPU/宿主接入检查、3 项材质 GPU 检查均通过。旧的默认参数断言按本版的新默认值更新;tint 像素检查显式使用白色 tint,从而检查参数通路而非把深色主题误认为必须增亮。
八个分类页面分别实际启动并输出截图。另行启动浅色数值页面,确认不再使用蓝色强调或偏蓝默认壁纸。
编译与平台边界
使用 javac --release 8 编译;发布 JAR 中所有 Java class 均检查为 major version 52。68 类公开控件继续存在,展示程序和图形库 JAR 分开,示例源码可离线编译。
本版没有改变 native 的 WGL 生命周期代码,也没有改变 Windows/Linux native 二进制;对照上一版归档做了字节一致性及 SHA-256 记录。shader 是 JAR 资源,运行时实际编译为新材质,因此不需要为本次材质修订重建 DLL。
Windows DLL 仍然只是已有的交叉编译产物;没有 Windows 实机运行测试。没有在真正的 JDK 8 虚拟机运行,没有 NVIDIA/AMD/Intel 硬件性能测试。llvmpipe 是软件 OpenGL 驱动,这里的真实 GL 调用/着色器验证不代表独立显卡帧率。
可复核文件
日志保存在 tests/results/:release-logic、release-motion、release-window、release-gpu、release-material-gpu、release-neutral、release-neutral-gpu、release-neutral-window、release-gallery、release-light 和 release-build。release-check.json 记录字节码、控件、资源与本地文档链接检查;native-preservation.json 记录未改变的 native 文件。
tests/verify-material.py 只做源码约束检查,不再将 2.2 shader 宣称为与原 WGL shader 相等;实际像素检查由 NeutralGpuTest 负责。