子组调用索引是否映射到 gl_LocalInvocationIndex?
Do subgroup invocation indices map to gl_LocalInvocationIndex?
我需要计算 gl_SubgroupID*gl_SubgroupSize+gl_SubgroupInvocationID
,还是可以使用 gl_LocalInvocationIndex
? gl_SubgroupInvocationID
中单个子组内的调用是否连续?
Do I need to calculate gl_SubgroupID*gl_SubgroupSize+gl_SubgroupInvocationID
, or can I use gl_LocalInvocationIndex
?
这些是不同的东西。本地调用索引是工作组内调用的索引。子组是不大于工作组的调用分组,但可能 更小 。因此,子组调用索引与本地调用索引不同。
正如标准所说:
There is no direct relationship between SubgroupLocalInvocationId
and LocalInvocationId
or LocalInvocationIndex
.
Are invocations within a single subgroup consecutive in gl_SubgroupInvocationID
?
是的,它们是连续的,但只是在半开范围 [0, SubgroupSize
) 的意义上。因此,可能具有相邻本地调用索引的两个调用可能没有相邻的子组索引。
我需要计算 gl_SubgroupID*gl_SubgroupSize+gl_SubgroupInvocationID
,还是可以使用 gl_LocalInvocationIndex
? gl_SubgroupInvocationID
中单个子组内的调用是否连续?
Do I need to calculate
gl_SubgroupID*gl_SubgroupSize+gl_SubgroupInvocationID
, or can I usegl_LocalInvocationIndex
?
这些是不同的东西。本地调用索引是工作组内调用的索引。子组是不大于工作组的调用分组,但可能 更小 。因此,子组调用索引与本地调用索引不同。
正如标准所说:
There is no direct relationship between
SubgroupLocalInvocationId
andLocalInvocationId
orLocalInvocationIndex
.
Are invocations within a single subgroup consecutive in
gl_SubgroupInvocationID
?
是的,它们是连续的,但只是在半开范围 [0, SubgroupSize
) 的意义上。因此,可能具有相邻本地调用索引的两个调用可能没有相邻的子组索引。