Open DejvBayer opened 3 months ago
Hello,
This can be done, but to have backward compatibility, I would rather do something simple, like
As for the rework of inputPrecision and so on, it is better to wait until the callback functionality is formalized and added.
Best regards, Dmitrii
Hi,
so as I understand it, you suggest that the structure of the VkFFTConfiguration
structure could look like:
typedef struct {
// ...
pfUINT doublePrecision;
pfUINT quadDoubleDoublePrecision;
pfUINT quadDoubleDoublePrecisionDoubleMemory;
pfUINT halfPrecision;
pfUINT halfPrecisionMemoryOnly;
pfUINT doublePrecisionFloatMemory;
VkFFTPrecision precision;
VkFFTPrecision execPrecision;
// ...
} VkFFTConfiguration;
where
precision
would setup the memory precision and default precision for execution andexecPrecision
if set would set up the execution precision.The behaviour then would be:
float
precision is used as todaydoublePrecision
, halfPrecision
, ...
) was specified, they would have the highest preference and everything would work as todayprecision
is specified, the memory and execution precision is set to the valueexecPrecision
is specified, the execution precision set by precision
is overrided to the given valueDo I get it right?
And I do not understand why it would be better to define the precision values as macros instead of an enum. What is the motivation?
Thank you.
Best regards David
Hi,
inspired by the cuFFT library, I was wandering if it would be a good idea to specify the transform precision by an enum class
VkFFTPrecision
defined as:Then when configurating all of the old flags could be removed and replaced by
precision
(default precision for other precision variables, used as forward output and inverse input),forwardPrecision
(forward transform execution precision),inversePrecision
(inverse transform execution precision),inputPrecision
(input data precision),outputPrecision
(output data precision).At least
precision
variable must be always specified.I think that it would really make everything more clear.
Thanks.
David