C++ DirectX11动态顶点缓冲区映射在多次调用时丢失数据

C++ DirectX11动态顶点缓冲区映射在多次调用时丢失数据,c++,directx-11,terrain,C++,Directx 11,Terrain,因此,我正在实现地形,并在运行时实现不同的技术,如断层线、菱形方块 我有一个子网格,负责剔除部分,基本上在执行一个算法时,我循环遍历部分,映射顶点缓冲区,然后更新位置,最后取消映射 我注意到,如果我快速按两次键盘输入,就会触发网格的算法部分出现,并以奇怪的值结束,就像它们未初始化一样。我解决这个问题的方法是在通话周围放一个小计时器,在我的笔记本电脑上是0.4秒 我把我的项目放在一台uni计算机上,我能够将计时器降到几乎0等待,算法工作得很好,没有任何数据丢失 所以我的问题是,有人能告诉我有关映射

因此,我正在实现地形,并在运行时实现不同的技术,如断层线、菱形方块

我有一个子网格,负责剔除部分,基本上在执行一个算法时,我循环遍历部分,映射顶点缓冲区,然后更新位置,最后取消映射

我注意到,如果我快速按两次键盘输入,就会触发网格的算法部分出现,并以奇怪的值结束,就像它们未初始化一样。我解决这个问题的方法是在通话周围放一个小计时器,在我的笔记本电脑上是0.4秒

我把我的项目放在一台uni计算机上,我能够将计时器降到几乎0等待,算法工作得很好,没有任何数据丢失

所以我的问题是,有人能告诉我有关映射和取消映射的信息吗?为什么我认为我的GPU在进行更改时可能会比较慢


谢谢

确保我正确地理解了您。那么,当你按两次按钮时,缓冲区会被映射两次而不会在之前被取消映射吗?嘿,不会,所以流程肯定会如下(获取输入键->调用算法->更新->绘制)如果你按两次按钮,它不会立即进行映射,就像下一个循环一样