36#ifndef VulkanFFTPlan_h
37#define VulkanFFTPlan_h
40#pragma GCC diagnostic push
41#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
42#pragma GCC diagnostic ignored "-Wunused-variable"
43#pragma GCC diagnostic ignored "-Wunused-parameter"
44#pragma GCC diagnostic ignored "-Wpedantic"
45#pragma GCC diagnostic ignored "-Wshadow"
46#pragma GCC diagnostic ignored "-Wsign-compare"
48#pragma GCC diagnostic pop
51#include "PipelineCacheManager.h"
129 size_t numBatches = 1,
136 vk::raii::CommandBuffer& cmdBuf);
141 vk::raii::CommandBuffer& cmdBuf);
Declaration of AcceleratorBuffer.
RAII wrapper around a VkFFTApplication and VkFFTConfiguration.
Definition: VulkanFFTPlan.h:102
void AppendReverse(AcceleratorBuffer< float > &dataIn, AcceleratorBuffer< float > &dataOut, vk::raii::CommandBuffer &cmdBuf)
Appends an inverse FFT to a command buffer.
Definition: VulkanFFTPlan.cpp:253
VulkanFFTDataType
Data type of a FFT input or output.
Definition: VulkanFFTPlan.h:117
@ TYPE_REAL
Real float32 values.
Definition: VulkanFFTPlan.h:119
@ TYPE_COMPLEX
Complex float32 values.
Definition: VulkanFFTPlan.h:122
vk::raii::Fence m_fence
Fence for synchronizing FFTs.
Definition: VulkanFFTPlan.h:169
size_t size() const
Return the number of points in the FFT.
Definition: VulkanFFTPlan.h:144
VulkanFFTPlanDirection
Direction of a FFT.
Definition: VulkanFFTPlan.h:107
@ DIRECTION_FORWARD
Normal FFT.
Definition: VulkanFFTPlan.h:109
@ DIRECTION_REVERSE
Inverse FFT.
Definition: VulkanFFTPlan.h:112
uint64_t m_bsize
Byte size of the output buffer (for forward) or input (for reverse)
Definition: VulkanFFTPlan.h:175
VkFFTApplication m_app
VkFFT application handle.
Definition: VulkanFFTPlan.h:150
VkPipelineCache m_pipelineCache
Pipeline cache for precompiled shader binaries.
Definition: VulkanFFTPlan.h:166
VulkanFFTPlan(size_t npoints, size_t nouts, VulkanFFTPlanDirection dir, size_t numBatches=1, VulkanFFTDataType timeDomainType=VulkanFFTPlan::TYPE_REAL)
Creates a new FFT plan.
Definition: VulkanFFTPlan.cpp:54
VkFence m_rawfence
The underlying VkFence of m_fence (we need to be able to take a pointer to it)
Definition: VulkanFFTPlan.h:172
VkDevice m_device
Device the FFT is runnning on.
Definition: VulkanFFTPlan.h:163
size_t m_size
Number of points in the FFT.
Definition: VulkanFFTPlan.h:156
VkFFTConfiguration m_config
VkFFT configuration state.
Definition: VulkanFFTPlan.h:153
void AppendForward(AcceleratorBuffer< float > &dataIn, AcceleratorBuffer< float > &dataOut, vk::raii::CommandBuffer &cmdBuf)
Appends a forward FFT to a command buffer.
Definition: VulkanFFTPlan.cpp:219
VkPhysicalDevice m_physicalDevice
Physical device the FFT is runnning on.
Definition: VulkanFFTPlan.h:160
uint64_t m_tsize
Byte size of the temporary working buffer.
Definition: VulkanFFTPlan.h:178
uint64_t m_isize
Byte size of the input buffer (for forward) or output (for reverse)
Definition: VulkanFFTPlan.h:181
Arguments for normalizing output of a de-embed.
Definition: VulkanFFTPlan.h:86
uint32_t outlen
Length of the output buffer, in samples.
Definition: VulkanFFTPlan.h:88
float scale
Scaling factor for normalization.
Definition: VulkanFFTPlan.h:94
uint32_t istart
Starting sample index.
Definition: VulkanFFTPlan.h:91
Arguments to a window function for FFT processing.
Definition: VulkanFFTPlan.h:58
uint32_t offsetOut
Offset from start of the output buffer to start writing to.
Definition: VulkanFFTPlan.h:69
float scale
Scaling factor for normalization.
Definition: VulkanFFTPlan.h:72
uint32_t numActualSamples
Number of samples in the input.
Definition: VulkanFFTPlan.h:60
uint32_t npoints
Number of FFT points.
Definition: VulkanFFTPlan.h:63
float alpha0
Alpha0 factor for cosine-sum windows, ignored for others.
Definition: VulkanFFTPlan.h:75
uint32_t offsetIn
Offset from start of the input buffer to start reading from.
Definition: VulkanFFTPlan.h:66
float alpha1
Alpha1 factor for cosine-sum windows, ignored for others.
Definition: VulkanFFTPlan.h:78