如何解决这是在HLSL中使用原子函数的正确方法吗?
我试图维护一个充满tris索引的缓冲区,以便在删除内存时可以重用该内存,同时在null tri索引的argsbuffer中保持计数。我知道我可以使用消耗和追加缓冲区使用相同的缓冲区,但是我试图保存在无人机上。那我可以这样做吗?
RWStructuredBuffer<int> args;//0=tris count,1 = tri garbage count that arent being used
RWStructuredBuffer<uint3> tris;
RWStructuredBuffer<uint> triGarbage;
uint NewTriIndex(){
uint fx = 0;
InterlockedExchange(triGarbage[args[1] > 0 ? --args[1]: fx],fx);
if(fx == 0){
InterlockedAdd(args[0],1,fx);
}
return fx;
}
此外,对于在d3d11中如何节省或避免无人机限制的任何建议,我将不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。