mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-25 09:18:54 -05:00
Fix Vulkan compilation on Linux
This commit is contained in:
parent
5e71da4530
commit
3ce2f28502
2
external/CMakeLists.txt
vendored
2
external/CMakeLists.txt
vendored
@ -844,7 +844,7 @@ ExternalProject_Add(vkfft
|
|||||||
TEST_COMMAND ""
|
TEST_COMMAND ""
|
||||||
)
|
)
|
||||||
ExternalProject_Get_Property(vkfft source_dir)
|
ExternalProject_Get_Property(vkfft source_dir)
|
||||||
set(VKFFT_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "")
|
set(VKFFT_INCLUDE_DIR "${source_dir}/vkFFT" CACHE INTERNAL "")
|
||||||
|
|
||||||
# requirements needed by many packages on windows
|
# requirements needed by many packages on windows
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
|
@ -37,27 +37,31 @@ add_definitions(-DUSE_KISSFFT)
|
|||||||
# Windows Vulkan SDK is missing glslang_c_interface.h
|
# Windows Vulkan SDK is missing glslang_c_interface.h
|
||||||
# See bug: https://vulkan.lunarg.com/issue/view/63d158a85df11200d569b2ab
|
# See bug: https://vulkan.lunarg.com/issue/view/63d158a85df11200d569b2ab
|
||||||
# Copy it from Linux SDK
|
# Copy it from Linux SDK
|
||||||
find_package(Vulkan)
|
if (${VKFFT_BACKEND} EQUAL 0)
|
||||||
if(Vulkan_FOUND AND (${VKFFT_BACKEND} EQUAL 0))
|
find_package(Vulkan)
|
||||||
set(sdrbase_SOURCES
|
if(Vulkan_FOUND)
|
||||||
${sdrbase_SOURCES}
|
set(sdrbase_SOURCES
|
||||||
dsp/vulkanvkfftengine.cpp
|
${sdrbase_SOURCES}
|
||||||
dsp/vulkanvkfftengine.h
|
dsp/vulkanvkfftengine.cpp
|
||||||
)
|
dsp/vulkanvkfftengine.h
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# CUDA Toolkit: https://developer.nvidia.com/cuda-downloads
|
# CUDA Toolkit: https://developer.nvidia.com/cuda-downloads
|
||||||
find_package(CUDA 9.0)
|
if (${VKFFT_BACKEND} EQUAL 1)
|
||||||
if(CUDA_FOUND AND (${VKFFT_BACKEND} EQUAL 1))
|
find_package(CUDA 9.0)
|
||||||
enable_language(CUDA)
|
if(CUDA_FOUND)
|
||||||
set(sdrbase_SOURCES
|
enable_language(CUDA)
|
||||||
${sdrbase_SOURCES}
|
set(sdrbase_SOURCES
|
||||||
dsp/cudavkfftengine.cpp
|
${sdrbase_SOURCES}
|
||||||
dsp/cudavkfftengine.h
|
dsp/cudavkfftengine.cpp
|
||||||
)
|
dsp/cudavkfftengine.h
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(Vulkan_FOUND OR CUDA_FOUND)
|
if((Vulkan_FOUND AND (${VKFFT_BACKEND} EQUAL 0)) OR (CUDA_FOUND AND (${VKFFT_BACKEND} EQUAL 1)))
|
||||||
set(sdrbase_SOURCES
|
set(sdrbase_SOURCES
|
||||||
${sdrbase_SOURCES}
|
${sdrbase_SOURCES}
|
||||||
dsp/vkfftengine.cpp
|
dsp/vkfftengine.cpp
|
||||||
@ -553,8 +557,8 @@ if(Vulkan_FOUND AND (${VKFFT_BACKEND} EQUAL 0))
|
|||||||
find_library(VULKAN_SPIRV_LIB SPIRV HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_SPIRV_LIB SPIRV HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_SPVREMAPPER_LIB SPVRemapper HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_SPVREMAPPER_LIB SPVRemapper HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_SPIRV_TOOLS_LIB SPIRV-Tools HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_SPIRV_TOOLS_LIB SPIRV-Tools HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_SPIRV_TOOLS_OPT_LIB SPIRV-Tools-Opt HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_SPIRV_TOOLS_OPT_LIB SPIRV-Tools-opt HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_SPIRV_TOOLS_SHARED_LIB SPIRV-Tools-Shared HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_SPIRV_TOOLS_SHARED_LIB SPIRV-Tools-shared HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_HLSL_LIB HLSL HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_HLSL_LIB HLSL HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_OGLCOMPILER_LIB OGLCompiler HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_OGLCOMPILER_LIB OGLCompiler HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_OSDEPENDENT_LIB OSDependent HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_OSDEPENDENT_LIB OSDependent HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
@ -563,18 +567,23 @@ if(Vulkan_FOUND AND (${VKFFT_BACKEND} EQUAL 0))
|
|||||||
find_library(VULKAN_MACHINEINDEPENDENT_LIB MachineIndependent HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_MACHINEINDEPENDENT_LIB MachineIndependent HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_GENERICCODEGEN_LIB GenericCodeGen HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_GENERICCODEGEN_LIB GenericCodeGen HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
|
|
||||||
find_library(VULKAN_SPIRVD_LIB SPIRVd HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
if(MSVC)
|
||||||
find_library(VULKAN_SPVREMAPPERD_LIB SPVRemapperd HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
set(VULKAN_DEBUG_POSTFIX "d")
|
||||||
find_library(VULKAN_SPIRV_TOOLSD_LIB SPIRV-Toolsd HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
else()
|
||||||
find_library(VULKAN_SPIRV_TOOLS_OPTD_LIB SPIRV-Tools-Optd HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
set(VULKAN_DEBUG_POSTFIX "")
|
||||||
find_library(VULKAN_SPIRV_TOOLS_SHAREDD_LIB SPIRV-Tools-Sharedd HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
endif()
|
||||||
find_library(VULKAN_HLSLD_LIB HLSLd HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_SPIRVD_LIB SPIRV${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_OGLCOMPILERD_LIB OGLCompilerd HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_SPVREMAPPERD_LIB SPVRemapper${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_OSDEPENDENTD_LIB OSDependentd HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_SPIRV_TOOLSD_LIB SPIRV-Tools${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_GLSLANGD_LIB glslangd HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_SPIRV_TOOLS_OPTD_LIB SPIRV-Tools-opt${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_GLSLANG_RESD_LIB glslang-default-resource-limitsd HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_SPIRV_TOOLS_SHAREDD_LIB SPIRV-Tools-shared${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_MACHINEINDEPENDENTD_LIB MachineIndependentd HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_HLSLD_LIB HLSL${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
find_library(VULKAN_GENERICCODEGEND_LIB GenericCodeGend HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
find_library(VULKAN_OGLCOMPILERD_LIB OGLCompiler${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
|
find_library(VULKAN_OSDEPENDENTD_LIB OSDependent${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
|
find_library(VULKAN_GLSLANGD_LIB glslang${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
|
find_library(VULKAN_GLSLANG_RESD_LIB glslang-default-resource-limits${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
|
find_library(VULKAN_MACHINEINDEPENDENTD_LIB MachineIndependent${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
|
find_library(VULKAN_GENERICCODEGEND_LIB GenericCodeGen${VULKAN_DEBUG_POSTFIX} HINTS "$ENV{VULKAN_SDK}/lib" REQUIRED)
|
||||||
|
|
||||||
target_link_libraries(sdrbase
|
target_link_libraries(sdrbase
|
||||||
optimized ${VULKAN_SPIRV_LIB}
|
optimized ${VULKAN_SPIRV_LIB}
|
||||||
@ -602,7 +611,7 @@ if(Vulkan_FOUND AND (${VKFFT_BACKEND} EQUAL 0))
|
|||||||
debug ${VULKAN_GLSLANG_RESD_LIB}
|
debug ${VULKAN_GLSLANG_RESD_LIB}
|
||||||
debug ${VULKAN_MACHINEINDEPENDENTD_LIB}
|
debug ${VULKAN_MACHINEINDEPENDENTD_LIB}
|
||||||
debug ${VULKAN_GENERICCODEGEND_LIB}
|
debug ${VULKAN_GENERICCODEGEND_LIB}
|
||||||
Vulkan::Vulkan
|
debug Vulkan::Vulkan
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -25,11 +25,13 @@
|
|||||||
#ifdef USE_FFTW
|
#ifdef USE_FFTW
|
||||||
#include "dsp/fftwengine.h"
|
#include "dsp/fftwengine.h"
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef VKFFT_BACKEND
|
||||||
#if VKFFT_BACKEND==0
|
#if VKFFT_BACKEND==0
|
||||||
#include "dsp/vulkanvkfftengine.h"
|
#include "dsp/vulkanvkfftengine.h"
|
||||||
#elif VKFFT_BACKEND==1
|
#elif VKFFT_BACKEND==1
|
||||||
#include "dsp/cudavkfftengine.h"
|
#include "dsp/cudavkfftengine.h"
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
QStringList FFTEngine::m_allAvailableEngines;
|
QStringList FFTEngine::m_allAvailableEngines;
|
||||||
|
|
||||||
@ -61,6 +63,7 @@ FFTEngine* FFTEngine::create(const QString& fftWisdomFileName, const QString& pr
|
|||||||
|
|
||||||
qDebug("FFTEngine::create: using %s engine", qPrintable(engine));
|
qDebug("FFTEngine::create: using %s engine", qPrintable(engine));
|
||||||
|
|
||||||
|
#ifdef VKFFT_BACKEND
|
||||||
#if VKFFT_BACKEND==0
|
#if VKFFT_BACKEND==0
|
||||||
if (engine == VulkanvkFFTEngine::m_name) {
|
if (engine == VulkanvkFFTEngine::m_name) {
|
||||||
return new VulkanvkFFTEngine();
|
return new VulkanvkFFTEngine();
|
||||||
@ -71,6 +74,7 @@ FFTEngine* FFTEngine::create(const QString& fftWisdomFileName, const QString& pr
|
|||||||
return new CUDAvkFFTEngine();
|
return new CUDAvkFFTEngine();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
#ifdef USE_FFTW
|
#ifdef USE_FFTW
|
||||||
if (engine == FFTWEngine::m_name) {
|
if (engine == FFTWEngine::m_name) {
|
||||||
return new FFTWEngine(fftWisdomFileName);
|
return new FFTWEngine(fftWisdomFileName);
|
||||||
@ -94,6 +98,7 @@ QStringList FFTEngine::getAllNames()
|
|||||||
#ifdef USE_KISSFFT
|
#ifdef USE_KISSFFT
|
||||||
m_allAvailableEngines.append(KissEngine::m_name);
|
m_allAvailableEngines.append(KissEngine::m_name);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef VKFFT_BACKEND
|
||||||
#if VKFFT_BACKEND==0
|
#if VKFFT_BACKEND==0
|
||||||
VulkanvkFFTEngine vulkanvkFFT;
|
VulkanvkFFTEngine vulkanvkFFT;
|
||||||
if (vulkanvkFFT.isAvailable()) {
|
if (vulkanvkFFT.isAvailable()) {
|
||||||
@ -104,6 +109,7 @@ QStringList FFTEngine::getAllNames()
|
|||||||
if (cudavkFFT.isAvailable()) {
|
if (cudavkFFT.isAvailable()) {
|
||||||
m_allAvailableEngines.append(cudavkFFT.getName());
|
m_allAvailableEngines.append(cudavkFFT.getName());
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
return m_allAvailableEngines;
|
return m_allAvailableEngines;
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#include <QMutex>
|
#include <QMutex>
|
||||||
|
|
||||||
#include <vkFFT/vkFFT.h>
|
#include <vkFFT.h>
|
||||||
|
|
||||||
#include "dsp/fftengine.h"
|
#include "dsp/fftengine.h"
|
||||||
#include "dsp/vkfftutils.h"
|
#include "dsp/vkfftutils.h"
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include <vkFFT/vkFFT.h>
|
#include <vkFFT.h>
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
#if(VKFFT_BACKEND==0)
|
#if(VKFFT_BACKEND==0)
|
||||||
|
Loading…
Reference in New Issue
Block a user