3#include <vulkan/vulkan.h>
18#elif(VKFFT_BACKEND==1)
21#elif(VKFFT_BACKEND==2)
24#elif(VKFFT_BACKEND==3)
25 cl_platform_id platform;
28 cl_command_queue commandQueue;
47#elif(VKFFT_BACKEND==1)
52#elif(VKFFT_BACKEND==2)
57#elif(VKFFT_BACKEND==3)
58 cl_platform_id* platform;
85#elif(VKFFT_BACKEND==1)
91#elif(VKFFT_BACKEND==2)
97#elif(VKFFT_BACKEND==3)
188#elif(VKFFT_BACKEND==1)
189 cudaEvent_t* stream_event;
190 uint64_t streamCounter;
192#elif(VKFFT_BACKEND==2)
193 hipEvent_t* stream_event;
194 uint64_t streamCounter;
196#elif(VKFFT_BACKEND==3)
197 cl_command_queue* commandQueue;
210#elif(VKFFT_BACKEND==1)
216#elif(VKFFT_BACKEND==2)
222#elif(VKFFT_BACKEND==3)
223 cl_command_queue* commandQueue;
483#elif(VKFFT_BACKEND==1)
486 CUmodule VkFFTModule;
487 CUfunction VkFFTKernel;
489 CUdeviceptr consts_addr;
492#elif(VKFFT_BACKEND==2)
495 hipModule_t VkFFTModule;
496 hipFunction_t VkFFTKernel;
498 hipDeviceptr_t consts_addr;
501#elif(VKFFT_BACKEND==3)
542#elif(VKFFT_BACKEND==1)
546#elif(VKFFT_BACKEND==2)
550#elif(VKFFT_BACKEND==3)
@ VKFFT_ERROR_EMPTY_inputBuffer
@ VKFFT_ERROR_FAILED_TO_CREATE_PROGRAM
@ VKFFT_ERROR_FAILED_TO_RELEASE_COMMAND_QUEUE
@ VKFFT_ERROR_FAILED_TO_GET_FUNCTION
@ VKFFT_ERROR_INVALID_FENCE
@ VKFFT_ERROR_UNSUPPORTED_FFT_LENGTH
@ VKFFT_ERROR_FAILED_TO_ALLOCATE_MEMORY
@ VKFFT_ERROR_INVALID_PLATFORM
@ VKFFT_ERROR_FAILED_TO_RESET_FENCES
@ VKFFT_ERROR_UNSUPPORTED_RADIX
@ VKFFT_ERROR_FAILED_TO_CREATE_CONTEXT
@ VKFFT_ERROR_FAILED_TO_COPY
@ VKFFT_ERROR_FAILED_SHADER_PREPROCESS
@ VKFFT_ERROR_EMPTY_FFTdim
@ VKFFT_ERROR_EMPTY_kernel
@ VKFFT_ERROR_INSUFFICIENT_CODE_BUFFER
@ VKFFT_ERROR_FAILED_TO_SET_KERNEL_ARG
@ VKFFT_ERROR_FAILED_TO_GET_CODE_SIZE
@ VKFFT_ERROR_EMPTY_inputBufferSize
@ VKFFT_ERROR_EMPTY_tempBuffer
@ VKFFT_ERROR_FAILED_TO_CREATE_SHADER_MODULE
@ VKFFT_ERROR_FAILED_TO_ADD_NAME_EXPRESSION
@ VKFFT_ERROR_EMPTY_outputBuffer
@ VKFFT_ERROR_FAILED_TO_BEGIN_COMMAND_BUFFER
@ VKFFT_ERROR_FAILED_TO_END_COMMAND_BUFFER
@ VKFFT_ERROR_INSUFFICIENT_TEMP_BUFFER
@ VKFFT_ERROR_FAILED_TO_ENUMERATE_DEVICES
@ VKFFT_ERROR_FAILED_TO_CREATE_COMMAND_QUEUE
@ VKFFT_ERROR_FAILED_TO_MODULE_GET_GLOBAL
@ VKFFT_ERROR_FAILED_TO_DESTROY_PROGRAM
@ VKFFT_ERROR_FAILED_TO_BIND_BUFFER_MEMORY
@ VKFFT_ERROR_FAILED_TO_GET_CODE
@ VKFFT_ERROR_PLAN_NOT_INITIALIZED
@ VKFFT_ERROR_INVALID_COMMAND_POOL
@ VKFFT_ERROR_FAILED_TO_WAIT_FOR_FENCES
@ VKFFT_ERROR_FAILED_TO_CREATE_DESCRIPTOR_POOL
@ VKFFT_ERROR_EMPTY_bufferSize
@ VKFFT_ERROR_EMPTY_tempBufferSize
@ VKFFT_ERROR_FAILED_TO_CREATE_DEVICE
@ VKFFT_ERROR_FAILED_TO_FIND_PHYSICAL_DEVICE
@ VKFFT_ERROR_FAILED_TO_CREATE_BUFFER
@ VKFFT_ERROR_INVALID_CONTEXT
@ VKFFT_ERROR_FAILED_TO_INITIALIZE
@ VKFFT_ERROR_FAILED_TO_GET_DEVICE
@ VKFFT_ERROR_FAILED_TO_LAUNCH_KERNEL
@ VKFFT_ERROR_ONLY_INVERSE_FFT_INITIALIZED
@ VKFFT_ERROR_FAILED_TO_CREATE_INSTANCE
@ VKFFT_ERROR_FAILED_TO_SETUP_DEBUG_MESSENGER
@ VKFFT_ERROR_EMPTY_buffer
@ VKFFT_ERROR_INVALID_DEVICE
@ VKFFT_ERROR_FAILED_TO_ALLOCATE_DESCRIPTOR_SETS
@ VKFFT_ERROR_FAILED_TO_CREATE_COMMAND_POOL
@ VKFFT_ERROR_FAILED_TO_GET_ATTRIBUTE
@ VKFFT_ERROR_FAILED_TO_CREATE_EVENT
@ VKFFT_ERROR_FAILED_TO_SYNCHRONIZE
@ VKFFT_ERROR_FAILED_TO_CREATE_PIPELINE_LAYOUT
@ VKFFT_ERROR_UNSUPPORTED_FFT_OMIT
@ VKFFT_ERROR_FAILED_TO_CREATE_PIPELINE
@ VKFFT_ERROR_FAILED_TO_LOAD_MODULE
@ VKFFT_ERROR_FAILED_TO_CREATE_DESCRIPTOR_SET_LAYOUT
@ VKFFT_ERROR_UNSUPPORTED_FFT_LENGTH_DCT
@ VKFFT_ERROR_FAILED_TO_ALLOCATE
@ VKFFT_ERROR_EMPTY_kernelSize
@ VKFFT_ERROR_FAILED_TO_MAP_MEMORY
@ VKFFT_ERROR_UNSUPPORTED_FFT_LENGTH_R2C
@ VKFFT_ERROR_FAILED_TO_SUBMIT_QUEUE
@ VKFFT_ERROR_FAILED_TO_FIND_MEMORY
@ VKFFT_ERROR_FAILED_SHADER_LINK
@ VKFFT_ERROR_INVALID_QUEUE
@ VKFFT_ERROR_MALLOC_FAILED
@ VKFFT_ERROR_FAILED_TO_ALLOCATE_COMMAND_BUFFERS
@ VKFFT_ERROR_ONLY_FORWARD_FFT_INITIALIZED
@ VKFFT_ERROR_FAILED_TO_CREATE_FENCE
@ VKFFT_ERROR_FAILED_TO_EVENT_RECORD
@ VKFFT_ERROR_FAILED_SHADER_PARSE
@ VKFFT_ERROR_FAILED_TO_SET_DEVICE_ID
@ VKFFT_ERROR_FAILED_TO_COMPILE_PROGRAM
@ VKFFT_ERROR_FAILED_TO_SET_DYNAMIC_SHARED_MEMORY
@ VKFFT_ERROR_INVALID_PHYSICAL_DEVICE
@ VKFFT_ERROR_FAILED_SPIRV_GENERATE
@ VKFFT_ERROR_NULL_TEMP_PASSED
@ VKFFT_ERROR_EMPTY_outputBufferSize
VkFFTConfiguration configuration
VkBuffer bufferBluesteinFFT[3]
uint64_t useBluesteinFFT[3]
VkBuffer bufferBluestein[3]
VkBuffer bufferBluesteinIFFT[3]
uint64_t actualNumBatches
VkDeviceMemory bufferBluesteinIFFTDeviceMemory[3]
VkDeviceMemory bufferBluesteinFFTDeviceMemory[3]
uint64_t bufferBluesteinSize[3]
VkFFTPlan * localFFTPlan_inverse
VkDeviceMemory bufferBluesteinDeviceMemory[3]
VkFFTPushConstantsLayoutUint32 pushConstantsUint32
VkPipelineLayout pipelineLayout
VkDeviceMemory * bufferBluesteinDeviceMemory
VkDeviceMemory bufferLUTDeviceMemory
VkDeviceMemory * bufferBluesteinFFTDeviceMemory
VkDescriptorPool descriptorPool
VkDescriptorSetLayout descriptorSetLayout
VkBuffer * bufferBluesteinFFT
VkFFTPushConstantsLayoutUint64 pushConstants
VkDescriptorSet descriptorSet
VkFFTSpecializationConstantsLayout specializationConstants
uint64_t updatePushConstants
VkBuffer * bufferBluestein
uint64_t inputBufferOffset
uint64_t printMemoryLayout
uint64_t outputBufferOffset
uint64_t disableMergeSequencesR2C
uint64_t registerBoost4Step
uint64_t sharedMemorySize
uint64_t makeForwardPlanOnly
uint64_t isCompilerInitialized
uint64_t fixMaxRadixBluestein
uint64_t coordinateFeatures
uint64_t isOutputFormatted
VkMemoryBarrier * memory_barrier
uint64_t maxComputeWorkGroupSize[3]
uint64_t doublePrecisionFloatMemory
uint64_t makeInversePlanOnly
uint64_t * inputBufferSize
VkCommandPool * commandPool
uint64_t halfPrecisionMemoryOnly
VkPhysicalDevice * physicalDevice
uint64_t swapTo3Stage4Step
uint64_t isInputFormatted
uint64_t matrixConvolution
uint64_t performConvolution
uint64_t frequencyZeroPadding
uint64_t registerBoostNonPow2
uint64_t tempBufferOffset
uint64_t considerAllAxesStrided
uint64_t omitDimension[3]
uint64_t sharedMemorySizePow2
uint64_t performBandwidthBoost
uint64_t fft_zeropad_left[3]
VkDeviceMemory tempBufferDeviceMemory
uint64_t * tempBufferSize
VkCommandBuffer * commandBuffer
uint64_t allocateTempBuffer
uint64_t performZeropadding[3]
uint64_t sharedMemorySizeStatic
uint64_t inverseReturnToInputBuffer
uint64_t disableReorderFourStep
uint64_t inputBufferStride[3]
uint64_t kernelConvolution
uint64_t crossPowerSpectrumNormalization
uint64_t outputBufferStride[3]
uint64_t * outputBufferSize
uint64_t conjugateConvolution
uint64_t maxComputeWorkGroupCount[3]
uint64_t fft_zeropad_right[3]
VkCommandBuffer * commandBuffer
uint64_t numAxisUploads[3]
VkFFTAxis R2Cdecomposition
VkFFTAxis inverseBluesteinAxes[3][4]
uint64_t actualFFTSizePerAxis[3][3]
uint64_t actualPerformR2CPerAxis[3]
uint32_t workGroupShift[3]
uint64_t workGroupShift[3]
uint64_t outputBufferBlockNum
uint64_t resolveBankConflictFirstStages
uint64_t BluesteinPostMultiplication
uint64_t performBandwidthBoost
uint64_t BluesteinConvolutionStep
char gl_WorkGroupSize_y[50]
uint64_t performR2CmultiUpload
uint64_t inverseBluestein
uint64_t fft_zeropad_Bluestein_right_write[3]
uint64_t fft_zeropad_right_write[3]
uint64_t sharedStrideReadWriteConflict
uint64_t fft_zeropad_Bluestein_left_write[3]
uint64_t frequencyZeropadding
char gl_WorkGroupID_y[50]
char gl_WorkGroupSize_z[50]
uint64_t fft_zeropad_Bluestein_right_read[3]
char blockInvocationID[50]
uint64_t sharedMemSizePow2
uint64_t performBufferSetUpdate
uint64_t sharedStrideBankConflictFirstStages
uint64_t performZeropaddingOutput[3]
char stageInvocationID[50]
uint64_t kernelNumberByteSize
char gl_LocalInvocationID_y[50]
uint64_t performZeropaddingFull[3]
uint64_t mergeSequencesR2C
uint64_t fft_zeropad_right_read[3]
uint64_t registers_per_thread
uint64_t inputNumberByteSize
uint64_t writeFromRegisters
uint64_t numBuffersBound[6]
uint64_t crossPowerSpectrumNormalization
uint64_t inputBufferBlockSize
uint64_t BluesteinConvolutionBindingID
uint64_t firstStageStartSize
uint64_t inputBufferBlockNum
uint64_t fft_zeropad_left_read[3]
uint64_t reverseBluesteinMultiUpload
uint64_t BluesteinMultiplicationBindingID
uint64_t BluesteinPreMultiplication
char gl_WorkGroupID_x[50]
uint64_t conjugateConvolution
char gl_GlobalInvocationID_z[200]
uint64_t matrixConvolution
uint64_t min_registers_per_thread
uint64_t performZeropaddingInput[3]
uint64_t outputNumberByteSize
uint64_t zeropadBluestein[2]
uint64_t outputBufferBlockSize
char gl_LocalInvocationID_z[50]
char gl_GlobalInvocationID_x[200]
uint64_t convolutionBindingID
uint64_t dispatchZactualFFTSize
char gl_WorkGroupSize_x[50]
char gl_WorkGroupID_z[50]
char * disableThreadsStart
uint64_t fft_zeropad_left_write[3]
char gl_LocalInvocationID_x[50]
uint64_t registers_per_thread_per_radix[14]
uint64_t usedSharedMemory
uint64_t fft_zeropad_Bluestein_left_read[3]
char gl_GlobalInvocationID_y[200]
uint64_t fft_zeropad_left_full[3]
uint64_t performWorkGroupShift[3]
uint64_t fft_zeropad_right_full[3]
VkPhysicalDeviceProperties physicalDeviceProperties
uint64_t enableValidationLayers
VkCommandPool commandPool
uint64_t queueFamilyIndex
VkPhysicalDevice physicalDevice
VkDebugUtilsMessengerEXT debugMessenger
VkPhysicalDeviceMemoryProperties physicalDeviceMemoryProperties
std::vector< const char * > enabledDeviceExtensions