ComputeSharp
ComputeSharp copied to clipboard
Ulong Support?
Rationale
It's pretty self-explanatory. Ulongs (and also longs, for that matter) simply should be usable. The more primitives available, the better.
Proposed API
Same way as other primitives.
Looks like int64_t operations are supported in shader model 6.0 and higher. See https://github.com/microsoft/DirectXShaderCompiler/wiki/Shader-Model-6.0
There's a caps bit here (Int64ShaderOps) to check for support: https://docs.microsoft.com/en-us/windows/win32/api/d3d12/ns-d3d12-d3d12_feature_data_d3d12_options1
I couldn't find any documentation on what the exact limitations are, or exactly what "memory operations" means, but I guess it refers to int64_t support in constant/structured buffers and group shared memory.
hm