This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] eglSwapInterval 不起作用

Guru**** 2547150 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/605418/eglswapinterval-does-not-work

我在使用最新的 PSDK 时遇到了一个问题。

========================================================================

我写了一个演示来显示3D 对象和视频纹理、当我在下面配置 EGL 时、渲染时间是16.66ms 的多个倍、如32ms、50ms、100ms、

这无疑与 垂直刷新=> 60相关

但是、当我转到下面配置的离屏时、渲染时间 不再是16.66ms 的倍数、可能是40ms。

--------------------------------------------------------------------

它不知道离屏比屏幕快。

因为当渲染时间为40ms 时 、离屏将按预期呈现40ms、但屏幕 只 能呈现50ms。

====================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

我在 PC Linux 和 Android 上满足了这一要求、但 我使用 API eglSwapInterval (m_eglDisplay、0)来关闭垂直同步、从而解决了这一问题

但在 PSDK 中、API eglSwapInterval 始终返回 EGL_false。

我想知道"为什么 "或者"如何  通过  屏幕打破垂直同步的限制"

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已将您的问题转交给一位专家进行评论。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    是的、交换缓冲器有意与 Vsync 对齐、以防止任何撕裂伪影。

    您能告诉我们为什么需要关闭 vsync 吗? 主要是对性能进行基准测试吗? 或者是否还有其他需要关闭 Vsync 的用例?

    我们可以根据响应建议选项。

    此致、
    Anand
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正如我在上面提到的、Vsync 会轻食一些 fps。
    当渲染时间为40ms 时、屏幕上的 fps 为20、屏幕外的 fps 为24时、
    我明白了、关键任务是减少渲染时间。
    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    实际用例是什么? 是否涉及显示器? 或者您只是渲染并将其在屏幕上播放吗? 如果只是渲染、为什么不使用屏幕外的 Pixmap 表面?

    Vsync 是一种确保 GPU 和显示器之间无撕裂的机制。 这里没有时间浪费。 这在生产系统中至关重要。

    这是 Wayland 应用吗? 还是纯空窗口系统应用? 应用程序是如何设计的? 通常、需要有单独的 GPU 和渲染线程。 渲染线程只会将作业提交到 GPU。 显示线程负责在屏幕上显示。

    此致、
    Anand