除了[RW]StructuredBuffer以外,DirectX 11 Compute Shader还支持[RW]ByteAddressBuffer,可以实现非结构化数据访问,不过使用比较麻烦,应用也比较少,这里就不介绍了,感兴趣的可以看一下微软官方示例中的BasicCompute11子示例。
上述双调排序程序中使用了GroupMemoryBarrierWithGroupSync函数,它可以等待组内所有共享数据访问结束,且所有程序均到达此调用。HLSL还提供了一些相似用途的函数:
<code>AllMemoryBarrier AllMemoryBarrierWithGroupSync DeviceMemoryBarrier DeviceMemoryBarrierWithGroupSync GroupMemoryBarrier GroupMemoryBarrierWithGroupSync InterlockedAdd InterlockedAnd InterlockedCompareExchange InterlockedCompareStore InterlockedExchange InterlockedMax InterlockedMin InterlockedOr InterlockedXor </code>
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |