opengl - 多维工作组中的 gl_SubgroupInvocationID 计数
问题描述
关于GL_KHR_shader_subgroup扩展和计算着色器...gl_SubgroupInvocationID
是一维的(单一的uint
),而工作组最多可以是 3 维的。所以我想知道gl_LocalInvocationID
每个子组中有哪些(工作组内的线程)的 3 维数。
例如:假设我有工作组 16x16x1 并且gl_SubgroupSize
是 32。我如何知道当前工作组的哪些线程在子组 0 ( gl_SubgroupInvocationID == 0
) 中?
解决方案
将工作组划分为子组是实现定义的。此外,你不应该关心它。
子组功能的目的是促进子组之间的互通。询问与您的调用相关的其他子组中计算的值。唯一关心子组之间特定“物理”关系的函数是Quad
函数,它们处理片段着色器中 2x2 块上的操作。
推荐阅读
- .net - WinForms:将屏幕编号关联到 Screen.AllScreens.DeviceName
- sql - 根据包括空值在内的最大条件获取唯一记录
- android - 在 VScode 上运行颤振项目时出现代理错误
- r - 如何在 R 中自动化一系列脚本
- javascript - Django 和 Javascript:从 API 获取信息并保存到数据库
- python - 使用 Spotipy 的 invalid_client 错误和授权刷新令牌错误
- typescript - 打字稿固定字符串值与任何字符串值
- mongodb - 根据 Mongodb 中的日历周显示结果
- xsd - Java XSD - 使用自定义集合类型
- c++ - 尝试使用 libcurl 设置 IBM Watson 的 TTS 服务时出现问题