Devsh-Graphics-Programming / Nabla

Vulkan, OptiX and CUDA Interoperation Modular Rendering Library and Framework for PC/Linux/Android
http://devsh.eu
Apache License 2.0
460 stars 58 forks source link

add complex.hlsl #592

Closed nahiim closed 3 months ago

nahiim commented 11 months ago

Description

Start drafting complex.hlsl

devshgraphicsprogrammingjenkins commented 11 months ago

[CI]: Can one of the admins verify this patch?

devshgraphicsprogramming commented 4 months ago

I see a certain ladder of features, and each should have their own branch (so I can merge in order without having all comments addressed):

  1. having a complex_t struct to use
  2. subgroup::fft utilities for DIT and DIF
  3. workgroup::fft utilities for DIT and DIF
  4. a way to do multiple input items per-workgroup, i.e. do a 2048 sized FFT with a 512 workgroup while having the option of only using enough shared memory for 512 FFT + auxilary accessor
  5. optimizations for FFT real signals
  6. resurrect the nbl::ext and 1 or both of the old FFT examples to test with

They can branch off each other.

P.S. Let me know if you need "runtime" transcendental/special functions for complex_t then we can look into doing up our tgmath.hlsl