首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >渲染和测试,驱动程序重要吗?

渲染和测试,驱动程序重要吗?
EN

Stack Overflow用户
提问于 2020-12-06 19:08:17
回答 2查看 65关注 0票数 1

我正在开发一个渲染引擎(一个很小的引擎)

我想编写回归测试,以确保在添加新特性时不会引入bug。

如果我开发了一个计算着色器,或者将数据从缓冲区传输到缓冲区的东西,那么测试就很容易了。我们填充第一个缓冲区,并检查在传输之后,第二个缓冲区是否有相应的数据。

但是对于渲染来说,似乎很难.最后我找到了几个解决方案

  1. No test at all
  2. ,当测试开始显示屏幕快照和呈现时,请用户(测试人员)检查结果是否良好,或者
  3. 不使用屏幕快照,以及测试开始时将呈现与屏幕截图进行比较。

第一个解决办法是..。不是解决办法。第二个解决方案似乎很好,但是我认为我们失去了自动的东西是可悲的.

第三种解决办法似乎是最好的办法。然而,要真正有效,这意味着一种算法,如果它是在Nvidia卡,或AMD,或英特尔或.必须产生完全相同的结果。

所以问题是,我们可以依靠屏幕截图和一点一点的比较来进行回归测试吗?还是取决于司机和制造商?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-06 19:24:10

Vulkan和OpenGL都没有提供任何关于跨不同实现的二进制相同结果的保证。即使是同一张卡的驱动程序更新也会产生不同的结果。

你能做的最好的事情就是得到一个与预期结果“接近”的结果。

票数 3
EN

Stack Overflow用户

发布于 2020-12-06 21:29:01

老实说,硬件实现之间固有的差异是一个相对较小的问题,更大的问题是为逐位回归测试创建测试数据所花费的时间。

测试套件的真正功能是(正如您所说的)在添加新功能或解决bug时快速检查回归。使用您的示例,如果您更改了实现缓冲区的方式,那么在需要时可以很容易地修改单元测试,例如,缓冲区的内存类型可能会发生变化,因此重构单元测试是非常简单的。

将同样的方法应用于软件的可视化输出需要付出更多的努力,特别是当您做出要求您重新生成预期输出的更改时,即在单元测试中更改预期值比更改整个场景要简单得多。

即使对于web来说,大多数开发人员也不会费心去“测试”视觉效果并将注意力集中在功能上,只是不值得为维护测试而付出努力。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65171984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档