gpt4 book ai didi

opengl - opengl 函数会导致主线程卡住吗?

转载 作者:行者123 更新时间:2023-12-04 18:10:35 37 4
gpt4 key购买 nike

那么当你调用opengl函数时,比如glDraw或者gLBufferData,是否会导致程序线程停止等待GL完成调用呢?

如果不是,那么 GL 如何处理调用像 glDraw 这样的重要函数,然后立即更改影响绘制调用的设置?

最佳答案

不,他们(大部分)没有。大多数 GL 函数在使用时都会被缓冲,稍后实际执行。这意味着您不能将 CPU 和 GPU 视为同时协同工作的两个处理器。通常,CPU 执行一堆被缓冲的 GL 函数,一旦它们被传递到 GPU,这个函数就会执行它们。这意味着您无法仅通过比较执行前后的时间来可靠地控制执行特定 GL 函数所需的时间。

如果你想这样做,你需要首先运行 glFinish() 以便它实际上等待所有先前缓冲的 GL 调用执行,然后你可以开始计数,执行你想要进行基准测试的调用,再次调用 glFinish 以确保这些调用也被执行,然后完成基准测试。

另一方面,我说“大部分”。这是因为读取函数实际上需要与 GPU 同步以显示真实结果,因此在这种情况下,它们确实等待并卡住主线程。

编辑:我认为解释本身回答了您第二次提出的问题,但以防万一:所有调用都被缓冲的事实使得绘制可以先完成,然后更改设置以进行连续调用

关于opengl - opengl 函数会导致主线程卡住吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15178326/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com