Skip to content

时间图集的 CPU 资源 ​

lwe-scene 提供有界 TimedAtlasSource API。引擎现已将其接入完整 worker packet、共享 CPU 来源所有权及有界 GPU 帧上传,保留原有静态与粒子解码 API。帧、历史、暂停与事务契约见 Scene 图片、动画帧与历史缓冲。准入仍检查完整准备图与候选首帧。

接纳的资源形状 ​

来源接纳已核验的 TEXV0005 / TEXB0004 / TEXS0003 形状:BC3、flags 7、单图片与单顶层 mip、已知容器/负载结构、存储与图片尺寸一致、无剪切的整数矩形帧,以及有限正时长。即使只请求一个区域,也会验证全部帧。现有纹理尺寸、解码范围、来源大小和聚合检查上限继续执行,其他版本与形状仍不支持。不透明的 TEXI image_info_extra 字段原样保留在元数据与完整编码哈希中,与现有 CPU 解码器一样不影响像素解码;两个原始资源的非零值不能证明其渲染器语义。

原始 BC3 长度必须恰好为 ceil(width / 4) * ceil(height / 4) * 16。压缩 mip 声明的解压长度在预留或分配 LZ4 输出前与该结果比对;解压实际输出也必须恰好一致。共享 TextureInspectionBudget 对跨资源的 mip 与动画帧检查总量设限。

TimedAtlasSource::from_resource 从传入的资源描述符读取一次。哈希、元数据解析与负载解码使用同一份保留的编码缓冲。打开描述符后替换路径不会换成新文件;这不等于防止同一 inode 被并发原地写入的文件系统快照,需要该保证的调用方应先取得稳定来源。

所有权与内存 ​

同一 worker 的来源与解码区域应共享一个 AtlasMemoryBudget,最高为 512 MiB。账本按真实保留的 Vec capacity 计费,涵盖编码字节、需要时的解压 BC3、帧/mip 元数据与 RGBA 区域,并计入解析、解码期间的保守预留。克隆来源或区域句柄共享真实分配与租约;分别读取的来源独立计费,即使哈希相同。最后一个拥有者释放存储与计费;没有移出保留 Vec 并同时丢弃租约的 API。

usage() 返回当前计费、历史峰值与区域解码是否活动。同一共享预算中只允许一个活动区域解码任务。分配、结构、LZ4 或解码失败会释放临时租约并保留已有拥有者。失败的分配可能提高历史峰值,但不会遗留活动计费。

这些是分配容量与预留计数,并非进程总 RSS、分配器开销、VM 内存或 GPU 驻留。引擎将静态纹理、图集来源、保留区域、导入图片及有界文字/字体工作纳入同一共享 CPU 预算。Weak 缓存在重新验证来源后可复用实际不可变 owner;独立分配的 owner 仍独立计费。

区域与时间语义 ​

Bc3RegionLayout::checked 验证原图集尺寸与请求的 PixelRect,包括块行跨度和溢出、越界检查。解码器用固定块工作区,将相交 BC3 块直接写入最终区域 RGBA 分配;不创建全图集 RGBA,也不分配 packed/padded 区域堆缓冲。旧 DDS 路径继续用于静态/粒子资源及独立测试参照。

frame_neighborhood(index, radius) 包含原图集真实邻近像素,只在图集外边界裁切,不虚构透明、repeat/clamp 行为或边缘复制。frame_at(elapsed) 使用作者原始 f32 时长提升为 f64 后的累计周期,按左闭右开区间选择帧,拒绝负数与非有限时间。时钟起点、暂停恢复、首帧接纳和事务行为仍由调用方负责。

仅 CPU 解码不能证明 shader UV 方向、半像素偏移、原生过滤或原引擎舍入。渲染器接入需要独立 GPU 和桌面证据;解码单帧不能证明当前、候选、回滚及暂存资源共存时的峰值。

验证 ​

普通 crate 测试覆盖非均匀 BC3 块、全部 RGB565 端点、两种 alpha 插值分支、selector 次序、全部块偏移、多块及部分边缘裁切、全表验证、准确 LZ4 长度、时间边界、邻近像素、所有权和失败清理,并与保留的 image DDS 解码器比对作者夹具结果。

另有默认忽略的纯 CPU oracle,比较两个未修改的原始 3420277613 图集的全部十六帧及一像素邻域与完整 DDS 参照裁切。它需要私有原包,并显式设置 LWE_TIMED_ATLAS_ORACLE=1、LWE_TIMED_ATLAS_PROJECT,可选设置 LWE_TIMED_ATLAS_ASSETS 和 LWE_TIMED_ATLAS_ORACLE_REPORT。用 --ignored --exact --nocapture 运行该具名测试,作者资源保持在 Git 之外。报告记录原始资源哈希、区域哈希与容量;测试特意创建的较大全图集参照分配单独记录,不属于生产账本。

该 oracle 是资源级 CPU 证据,不运行 GL、不应用壁纸、不写桌面状态,也不能证明 Windows 一致性。原生桌面验收仍遵循贡献指南的独立显式启用程序。

2026-10-13 的原始资源复跑通过了全部十六个帧裁切及十六个邻域。单帧保留 23,328,000 字节 RGBA,最大一像素邻域保留 23,366,896 字节;两来源连同编码字节、原始 BC3 和元数据的真实容量分别为 65,754,173 与 65,751,588 字节。逐来源、逐输出运行时,生产账本峰值为 89,121,153 字节,包含 84 字节 codec 工作区预留。每个测试专用的全 DDS 参照另保留 209,952,000 字节。这些实测 CPU 容量不能预测完整渲染器的 GPU 预算。