gpt4 book ai didi

c# - 等待栅栏时间太长

转载 作者:行者123 更新时间:2023-12-02 01:31:17 25 4
gpt4 key购买 nike

我将 Vulkan 与 C# 和 Silk.net 结合使用。并且无法理解为什么即使是很小的命令队列也需要这么长时间才能完成。请查看这个 CPU 时间线:

enter image description here

正如您所看到的,等待时间太长,而GPU工作时间却很短:

enter image description here

我知道等待栅栏的效率很低。但我觉得有些奇怪。当使用 OpenGL 时,可以在每次绘制后同步 CPU 和 GPU。即使使用不同的着色器、纹理和大量工作。所以,没有这样的等待一定是可能的。

这是 Vulkan 的一些错误还是正常行为?

最佳答案

Vulkan 没有指定时间方面的行为。所以这既不是“错误”也不是“正常”。此类性能问题与 API 定义无关。它们是对系统的合理期望。

您所说的延迟时间似乎约为十分之一毫秒。就在无信号围栏上等待的开销而言,这并非完全不合理。期望在等待的 GPU 操作完成后立即唤醒 CPU 线程是不合理的。

只有当 CPU 开始超过 GPU 的运行速度时,才会在未发出信号的栅栏上等待。您应该仅检查前一帧中的栅栏,并且仅当您需要使用该帧使用的某些内存资源或交换链图像时。如果它仍然没有发出信号,请继续执行不需要使用这些资源的任何 CPU 工作。只有当您没有其他工作要做时,您才应该以非零时间真正观望。

关于c# - 等待栅栏时间太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73240134/

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