为什么 CPU 编译 GPU 着色器?

Why the CPU compiles the GPU shader?

为了大致了解 GPU 的缓存支持是如何工作的,我阅读了一些资料并理解了这一点:

CPU编译shader并将shader生成的代码传输给GPU执行并保存到磁盘。

如果需要执行相同的着色器,GPU 会直接从磁盘中获取它保存的二进制代码。

如果我没理解错的话,我不明白为什么CPU每次都要编译shader

除非着色器没有在运行前编译(即在开发期间)?

并非所有 GPU 都使用相同的指令集。只有磁盘上的二进制文件意味着可以与该软件一起使用的 GPU 架构集将永远固定。