首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >射线追踪有效载荷中`ray_data`的存储

问射线追踪有效载荷中`ray_data`的存储
EN

Stack Overflow用户
提问于 2021-04-30 15:30:30
回答 1查看 58关注 0票数 0

我目前正在使用金属的射线追踪API。我记得我可以将数据从一个交集函数传递到启动射线交集进程的计算内核。在重新观看Sean (链接Discover ray tracing with Metal )的“2020年世界互联网大会演讲”之后,我发现了16:13左右的相关章节,他在其中谈到了射线的有效载荷。

但是,我很好奇这个有效载荷在传递给交集函数时存储在哪里。当在交集函数中使用相关的[[ payload ]]属性声明时,它必须在ray_data地址空间中。根据金属阴影语言规范(2.3版),pg。64,传递给交集函数的数据被复制到ray_data地址空间中,并在交集函数返回后被复制回来。但是,这并没有指定数据是存储在平铺内存中(比如threadgroup地址空间中的数据)还是存储在每线程内存中(thread地址空间)。视频也没有说明这一点。

实际上,intersect函数的声明(参见pg )。)包含有效载荷项的thread地址空间(这是有意义的)

那么,存储在内核中的ray_data地址空间中的数据的复制的thread“版本”在哪里呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-13 16:57:41

根据我在苹果开发者论坛上得到的答案,

GPU存储有效载荷的方式因设备而异,而且没有特定的大小。我们真正能说的是,成本的规模与大小大致相同,所以你应该将有效载荷降到最低。如果有效载荷变得太大,您可能会遇到一个戏剧性的性能下降。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67336596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档