c# - 如何使用 Unity 的 AsyncGPUReadback 解决此错误?
问题描述
我正在尝试从 GPU 读回一个计算缓冲区,其中有一个我已经定义和先前设置的结构数组。
var req = AsyncGPUReadback.Request(myBuffer);
if(req.hasError == false)
{
var readback = req.GetData<myStruct>();
print(readback);
}
当我把它放在代码中时,我得到这个错误:InvalidOperationException: Cannot access the data as it is not available。问题是数据应该可用,因为当我使用普通的 GetData 方法时,一切正常。
myBuffer.GetData(data);
有谁知道我应该在哪里解决这个错误?谢谢!
- - - - - - - - - - - - 编辑 - - - - - - - - - - - - - ------
我在这里找到了一个解决方案https://github.com/keijiro/AsyncCaptureTest/blob/master/Assets/AsyncCapture.cs,但我不太清楚为什么它现在而不是以前工作。
void Update()
{
AsyncGPUReadback.Request(myBuffer, OnCompleteReadBack);
}
void OnCompleteReadBack(AsyncGPUReadBackRequest request)
{
if(request.hasError == false)
{
var data = request.GetData<myStruct>();
}
}
解决方案
推荐阅读
- html - Flexbox 协助
- javascript - 数据不作为道具传递?
- javascript - 用于精确频率匹配字符的 Java Script Regex
- javascript - 带有“this”关键字选择器的标签选择器
- regex - 如何使命令的以下输出不失败
- r - 将 .Renviron 和 .Rhistory 移动到不同的目录是否安全?
- amazon-web-services - 红移 DISTSTYLE 键。确定定义为 KEY 的最佳列
- python - leetcode-540 排序数组中的单个元素。在本地返回正确但在平台上返回错误的值
- python - 你如何引用 python 包的其他分支?
- django - Django Raw Field 通过多层次的关系