我正在使用SDL开发一个应用程序,很高兴。我注意到动画中有一些小的冻结。我已经编写了一个具有最小功能的单独项目,我发现即使使用非常基本的设置也会出现问题。
这是代码:
renderContent
程序记录10秒内帧之间的时间,并将结果保存在文本文件中。
我使用python绘制数据我得到了这个:
横轴表示帧时间,以毫秒为单位。纵轴表示自上一帧起经过的时间。也是以毫秒为单位。
正如您所看到的,帧之间的时间非常不规则并且存在周期性尖峰(尖峰之间约1秒)。
我已将CMake项目上传到github repository,因此您可以根据需要进行测试。
我已经使用集成和专用GPU(Intel 530HD和NVIDIA GTX 960M)进行了测试。
SDL版本是2.0.5。
我在Windows 10和Ubuntu 16.04 LTS上测试过它。
修改 我已将应用程序移植到GLFW,同样的情况也发生了。因此,SDL中存在一个错误非常不可思议。我相应地更新了git repo,现在有两个CMake项目。
EDIT2:
我已经在另一台计算机上测试过并且运行正常。
我不知道发生了什么。这可能是硬件问题吗?那么为什么当我运行其他应用程序时它不会发生?
司机问题?非常不喜欢,因为它使用英特尔和NVIDIA GPU。此外,它发生在Ubuntu和Windows上。
答案 0 :(得分:1)
我有类似的行为(虽然由于CPU过热导致更长和更低的平台,而不是尖峰),因此决定暂时降低时钟频率。如果您的PC发生这种情况,您可以尝试升级内部冷却器或添加外部冷却器。或者只是降低房间空调的温度设置。
当然,夏天总会出现问题。