2

我想groupshared在 DirectX 计算着色器中使用内存来减少全局内存带宽并希望提高性能。我的输入数据是 a Texture2D,我可以使用 2D 索引访问它,如下所示:

Input[threadID.xy]

我想有一个共享内存的二维数组来缓存输入数据的一部分,所以我尝试了明显的:

groupshared float SharedInput[32, 32];

它不会编译。错误消息说syntax error: unexpected token ','

有没有办法拥有一个二维共享内存数组?如果不是,那么处理存储在 1D 共享内存数组中的 2D 数据的好技术是什么?

4

1 回答 1

3

groupshared数组不能用多维索引来索引。您可以获得的最接近的是一个数组数组,其中每个维度都独立索引。

groupshared float SharedInput[32][32];

它不如多维索引好,但至少您不必手动计算线性索引。

于 2013-04-25T19:35:28.923 回答