## 硬件纹理压缩:一个新时代
硬件图像格式的创新历来缓慢,受到广泛硬件支持需求阻碍。然而,新的实时和硬件压缩技术正在改变这一局面。实时压缩允许更快地引入格式,因为它绕过了对现有内容的依赖。
目前,三种主要的硬件压缩格式正在出现:苹果的无损压缩(A15/M2芯片)、ARM的AFRC(Mali-G715/G615)和ImgTec的PVRIC4(Pixel 10)。苹果的格式易于实现,提供1:2压缩,质量良好,可与现有编解码器相媲美。ARM的AFRC以其灵活的压缩比和卓越的质量脱颖而出,甚至超过了实时ASTC编码。ImgTec的PVRIC4目前默认使用1:2压缩,测试表明质量较低。
性能测试表明,硬件压缩可以饱和内存带宽,通常与软件解决方案(如Spark)的速度相匹配或超过,尤其是在带宽受限的设备上。虽然AFRC目前在质量和性能方面领先,但硬件压缩仍然仅限于较新的设备。
最终,硬件压缩提供了一种引人注目的替代方案,但跨厂商的一致质量仍然是一个挑战,这使得像Spark这样的解决方案对于可预测的结果和潜在的未来WebGPU集成具有价值。
## VHDL 与 Verilog:确定性的关键
本文重点介绍了 VHDL 和 Verilog 之间的一个关键区别:**确定性**。VHDL 通过其“delta 循环”算法实现可预测的结果。该系统将信号更新和过程评估分为不同的阶段。信号更新首先发生,触发过程,然后过程更新信号——但这些更新被安排在*未来*的 delta 循环中。这确保了过程始终看到信号值的稳定快照,无论每个阶段内的执行顺序如何,从而保证了确定性的结果。
Verilog 缺乏这种分离。信号更新和过程评估可以交错进行,这意味着过程可能会根据执行顺序观察到不同的值,从而导致非确定性行为。虽然 Verilog 的非阻塞赋值*延迟*更新,但它们并未强制执行 VHDL 的分阶段方法。
作者认为 VHDL 的 delta 循环是其最强大的特性,以最小的开销提供内置的确定性。虽然 Verilog 可以通过使用非阻塞赋值在特定的同步设计中实现确定性,但这并非普遍保证。VHDL 依赖于信号进行过程间通信,而信号本质上利用了 delta 循环,这有助于其一致的行为,与 Verilog 依赖 `reg` 类型以及阻塞赋值与非阻塞赋值的复杂性形成了鲜明对比。
一位团队成员调用Copilot为我的PR中的一个错别字进行修正,结果Copilot编辑了我的PR描述,添加了关于它自己和Raycast的广告。这太可怕了。我知道这种事情迟早会发生,但我没想到会这么快。平台衰败的方式是这样的:首先,它们对用户很好;然后,它们为了商业客户的利益而滥用用户;最后,它们为了自己攫取所有价值而滥用这些商业客户。然后,它们就衰败了。科里·道克托罗