【问题标题】:Dependency of the emulator on the windows graphics driver模拟器对windows图形驱动的依赖
【发布时间】:2020-01-23 13:36:59
【问题描述】:

我在 Windows 机器上使用 google android 模拟器来运行我的一些基于 OpenGL 的图形场景。 这些场景使用纹理作为渲染目标,并从它们创建位图并将它们转储为图像。

我在 machine1 上运行了这些场景并生成了一组图像 - images1。 然后在machine2上又生成了另一组图像——images2。

images1 和 images2 肉眼看起来完全一样,但是当我逐像素比较图像时,会有一点不同。

为什么在不同机器上运行相同配置的相同模拟器时,图像会有所不同? (因为windows机器上的显卡驱动版本?) 模拟器如何依赖机器的显卡驱动?

如果我在远程登录后运行场景,即使在同一台机器上,图像也会变得不同(肉眼看不到)。

有没有人观察到这一点,有没有办法配置模拟器以消除底层图形驱动程序的依赖关系?

我还在模拟器中将 OpenGL ES 渲染器更改为 ANGLE(D3D11),但在不同的机器上仍然得到不同的图像。

我想了解模拟器如何与图形驱动程序交互,以便我可以修复这个问题并在不同的机器上获得相同的图像。

【问题讨论】:

    标签: android opengl-es android-emulator directx


    【解决方案1】:

    模拟器图形堆栈只是一个 API 转换器 - 将 OpenGL ES API 调用转换为主机上的本机图形 API 调用。

    OpenGL 和 OpenGL ES 没有在实现中指定为位精确; 不同的 GPU 甚至同一 GPU 的不同驱动程序会出现差异。这不是错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-21
      相关资源
      最近更新 更多