Description
Thread scope InterlockedAccumulate is only allowed with OuterProductOptimal layout. Therefore, Stride and Layout parameters are extraneous in the HLSL API.
See related spec issue here: microsoft/hlsl-specs#850
In addition, since the layout is OuterProductOptimal, alignment is device dependent, and should not be supplied from HLSL/DXIL. We can remove the Align parameter from the API.
See related spec issue here: microsoft/hlsl-specs#851
Since the builtin is shared between scopes, the HLSL API implementation should provide Stride = 0, Layout = OuterProductOptimal, and Align = 0 to the builtin operation. There's no need to expose these parameters to the API user.
Description
Thread scope InterlockedAccumulate is only allowed with OuterProductOptimal layout. Therefore, Stride and Layout parameters are extraneous in the HLSL API.
See related spec issue here: microsoft/hlsl-specs#850
In addition, since the layout is OuterProductOptimal, alignment is device dependent, and should not be supplied from HLSL/DXIL. We can remove the Align parameter from the API.
See related spec issue here: microsoft/hlsl-specs#851
Since the builtin is shared between scopes, the HLSL API implementation should provide Stride = 0, Layout = OuterProductOptimal, and Align = 0 to the builtin operation. There's no need to expose these parameters to the API user.