Why does DX12 not have `shuffle_xor` SIMD intrinsic, unlike Vulkan?

Started by
4 comments, last by Adam Miles 4 years, 6 months ago

Vulkan allows for shuffle_xor, but DX12 doesn't. Why is that?

Advertisement

It's almost certainly because only a limited set of hardware is capable of support the operation. The list of supported Wave Intrinsics introduced with SM6.0 are either all supported or none are supported. Requiring shuffle_xor would likely have meant a significantly larger proportion of hardware would not have been able to claim support for them all.

Breaking wave ops up further into a series of ‘tiers’ may have been possible, but you'd still be left with a significant portion of the hardware install base without support anyway.

Adam Miles - Principal Software Development Engineer - Microsoft Xbox Advanced Technology Group

How should one go about doing matrix transpositions efficiently then, using DX12?

HLSL matrix transpose.

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

bzm3r said:

How should one go about doing matrix transpositions efficiently then, using DX12?

It depends how large a matrix we're talking about?

Adam Miles - Principal Software Development Engineer - Microsoft Xbox Advanced Technology Group

This topic is closed to new replies.

Advertisement