首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你怎么知道你所显示的是完全画在屏幕上的?

你怎么知道你所显示的是完全画在屏幕上的?
EN

Stack Overflow用户
提问于 2013-11-04 16:50:46
回答 1查看 406关注 0票数 3

在计算机监视器上显示图像涉及到图形API的使用,该API分发一系列异步调用.在某个特定的时间,把通缉的东西放到电脑屏幕上。

但是,如果您感兴趣的是,在完全绘制所需的映像(用户可以看到)时,了解确切的 CPU时间会怎样呢?

我真的需要拿一个CPU时间戳,当所有的东西都显示出来,把这一点和我所做的其他测量联系起来。

在不考虑图形堆栈的异步行为的情况下,许多事情都可以获得对抖动的图形调用的长度:

  • 多线程;
  • 同步到V-空白(不幸需要避免一些撕裂);
  • 我还忘了什么?

我针对Linux上的解决方案,但对任何其他操作系统都是开放的。我已经研究了X视频分机 for X.org服务器和OpenGL API的部分内容,但是我还没有找到一个有效的解决方案。

我只希望解决方案不涉及入侵视频驱动程序/硬件!

注意:我不能在所需的硬件上使用最近的Nvidia G同步程序.虽然这项技术可以消除一些无法预测的抖动,但我认为它并不能完全解决这个问题。

OpenGL维基建议如下:“如果需要GPU<->CPU同步,那么在缓冲区交换之后,应该使用高精度/多媒体计时器而不是glFinish。”

有人知道在GPU队列中完成swapBuffer调用后如何正确地获取这样一个高精度/多媒体计时器值吗?

EN

回答 1

Stack Overflow用户

发布于 2013-11-04 19:14:52

最近的OpenGL提供同步/栅栏对象。您可以将同步对象放置在OpenGL命令流中,然后等待它们被传递。请参阅对象

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

https://stackoverflow.com/questions/19772758

复制
相关文章

相似问题

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