据我所知,AMD创建了一个在x86 CPU上运行的另一个implementation OpenCL。从简化调试的角度来看,这非常有用。不幸的是,OpenCL对我来说不是一个选择。
是否存在任何Open GL x86实施?当然,这会以一些CPU时间为代价,大大简化我的开发过程。然后,我会在GPU上运行相同的代码,之后无需更改。
答案 0 :(得分:4)
Mesa可能是您的选择。
从他们的网站:
Mesa是由Intel,AMD和NVIDIA以及VMware虚拟GPU制造的几种硬件的OpenGL实现。 还有一些基于软件的渲染器:swrast(传统的Mesa光栅化器),softpipe(镓参考驱动程序)和llvmpipe(基于LLVM / JIT的高速光栅化器)。
使用Mesa时,您可以设置LIBGL_ALWAYS_SOFTWARE
环境变量,这将导致Mesa "始终使用软件渲染" 。
答案 1 :(得分:0)
OpenGL不是指令集,也不是库。它是用于与GPU连接的绘图API(是的,有基于软件的光栅化器,如Mesa softpipe)。这些天你可以找到的大多数计算机都支持OpenGL。
当您使用OpenGL API时,它不像您的OpenGL调用得到"翻译"进入GPU的特殊指令集,然后成为程序的一部分。 OpenGL操作只会创建最终在设备驱动程序中的调用,就像读取或写入文件一样。