feat: 切换后端至PaddleOCR-NCNN,切换工程为CMake
1.项目后端整体迁移至PaddleOCR-NCNN算法,已通过基本的兼容性测试 2.工程改为使用CMake组织,后续为了更好地兼容第三方库,不再提供QMake工程 3.重整权利声明文件,重整代码工程,确保最小化侵权风险 Log: 切换后端至PaddleOCR-NCNN,切换工程为CMake Change-Id: I4d5d2c5d37505a4a24b389b1a4c5d12f17bfa38c
This commit is contained in:
25
3rdparty/opencv-4.5.4/cmake/checks/OpenCVDetectCudaArch.cu
vendored
Normal file
25
3rdparty/opencv-4.5.4/cmake/checks/OpenCVDetectCudaArch.cu
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <list>
|
||||
|
||||
int main()
|
||||
{
|
||||
std::ostringstream arch;
|
||||
std::list<std::string> archs;
|
||||
|
||||
int count = 0;
|
||||
if (cudaSuccess != cudaGetDeviceCount(&count)){ return -1; }
|
||||
if (count == 0) { return -1; }
|
||||
for (int device = 0; device < count; ++device)
|
||||
{
|
||||
cudaDeviceProp prop;
|
||||
if (cudaSuccess != cudaGetDeviceProperties(&prop, device)){ continue; }
|
||||
arch << prop.major << "." << prop.minor;
|
||||
archs.push_back(arch.str());
|
||||
arch.str("");
|
||||
}
|
||||
archs.unique(); // Some devices might have the same arch
|
||||
for (std::list<std::string>::iterator it=archs.begin(); it!=archs.end(); ++it)
|
||||
std::cout << *it << " ";
|
||||
return 0;
|
||||
}
|
12
3rdparty/opencv-4.5.4/cmake/checks/atomic_check.cpp
vendored
Normal file
12
3rdparty/opencv-4.5.4/cmake/checks/atomic_check.cpp
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
#include <atomic>
|
||||
|
||||
static int test()
|
||||
{
|
||||
std::atomic<long long> x;
|
||||
return x;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
return test();
|
||||
}
|
9
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx.cpp
vendored
Normal file
9
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx.cpp
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
#if !defined __AVX__ // MSVC supports this flag since MSVS 2013
|
||||
#error "__AVX__ define is missing"
|
||||
#endif
|
||||
#include <immintrin.h>
|
||||
void test()
|
||||
{
|
||||
__m256 a = _mm256_set1_ps(0.0f);
|
||||
}
|
||||
int main() { return 0; }
|
11
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx2.cpp
vendored
Normal file
11
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx2.cpp
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
#if !defined __AVX2__ // MSVC supports this flag since MSVS 2013
|
||||
#error "__AVX2__ define is missing"
|
||||
#endif
|
||||
#include <immintrin.h>
|
||||
void test()
|
||||
{
|
||||
int data[8] = {0,0,0,0, 0,0,0,0};
|
||||
__m256i a = _mm256_loadu_si256((const __m256i *)data);
|
||||
__m256i b = _mm256_bslli_epi128(a, 1); // available in GCC 4.9.3+
|
||||
}
|
||||
int main() { return 0; }
|
13
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512.cpp
vendored
Normal file
13
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512.cpp
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
#if defined __AVX512__ || defined __AVX512F__
|
||||
#include <immintrin.h>
|
||||
void test()
|
||||
{
|
||||
__m512i zmm = _mm512_setzero_si512();
|
||||
#if defined __GNUC__ && defined __x86_64__
|
||||
asm volatile ("" : : : "zmm16", "zmm17", "zmm18", "zmm19");
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
#error "AVX512 is not supported"
|
||||
#endif
|
||||
int main() { return 0; }
|
11
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512clx.cpp
vendored
Normal file
11
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512clx.cpp
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
#if defined __AVX512__ || defined __AVX512F__
|
||||
#include <immintrin.h>
|
||||
void test()
|
||||
{
|
||||
__m512i a, b, c;
|
||||
a = _mm512_dpwssd_epi32(a, b, c); // VNNI
|
||||
}
|
||||
#else
|
||||
#error "AVX512-CLX is not supported"
|
||||
#endif
|
||||
int main() { return 0; }
|
12
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512cnl.cpp
vendored
Normal file
12
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512cnl.cpp
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
#if defined __AVX512__ || defined __AVX512F__
|
||||
#include <immintrin.h>
|
||||
void test()
|
||||
{
|
||||
__m512i a, b, c;
|
||||
a = _mm512_madd52hi_epu64(a, b, c);
|
||||
a = _mm512_permutexvar_epi8(a, b);
|
||||
}
|
||||
#else
|
||||
#error "AVX512-CNL is not supported"
|
||||
#endif
|
||||
int main() { return 0; }
|
14
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512common.cpp
vendored
Normal file
14
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512common.cpp
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
#if defined __AVX512__ || defined __AVX512F__
|
||||
#include <immintrin.h>
|
||||
void test()
|
||||
{
|
||||
__m512i zmm = _mm512_setzero_si512();
|
||||
zmm = _mm512_lzcnt_epi32(zmm);
|
||||
#if defined __GNUC__ && defined __x86_64__
|
||||
asm volatile ("" : : : "zmm16", "zmm17", "zmm18", "zmm19");
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
#error "AVX512-COMMON is not supported"
|
||||
#endif
|
||||
int main() { return 0; }
|
14
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512icl.cpp
vendored
Normal file
14
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512icl.cpp
vendored
Normal file
@ -0,0 +1,14 @@
|
||||
#if defined __AVX512__ || defined __AVX512F__
|
||||
#include <immintrin.h>
|
||||
void test()
|
||||
{
|
||||
__m512i a, b, c;
|
||||
a = _mm512_popcnt_epi8(a); // BITALG
|
||||
a = _mm512_shrdv_epi64(a, b, c); // VBMI2
|
||||
a = _mm512_popcnt_epi64(a); // VPOPCNTDQ
|
||||
a = _mm512_dpwssd_epi32(a, b, c); // VNNI
|
||||
}
|
||||
#else
|
||||
#error "AVX512-ICL is not supported"
|
||||
#endif
|
||||
int main() { return 0; }
|
16
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512knl.cpp
vendored
Normal file
16
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512knl.cpp
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
#if defined __AVX512__ || defined __AVX512F__
|
||||
#include <immintrin.h>
|
||||
|
||||
void test()
|
||||
{
|
||||
int* base;
|
||||
__m512i idx;
|
||||
__mmask16 m16;
|
||||
__m512 f;
|
||||
_mm512_mask_prefetch_i32gather_ps(idx, m16, base, 1, _MM_HINT_T1);
|
||||
f = _mm512_rsqrt28_ps(f);
|
||||
}
|
||||
#else
|
||||
#error "AVX512-KNL is not supported"
|
||||
#endif
|
||||
int main() { return 0; }
|
17
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512knm.cpp
vendored
Normal file
17
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512knm.cpp
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
#if defined __AVX512__ || defined __AVX512F__
|
||||
#include <immintrin.h>
|
||||
void test()
|
||||
{
|
||||
__m512 a, b, c, d, e;
|
||||
__m512i ai, bi, ci, di, ei, fi;
|
||||
__m128 *mem;
|
||||
__m128i *memi;
|
||||
__mmask16 m;
|
||||
a = _mm512_4fnmadd_ps(a, b, c, d, e, mem);
|
||||
ai = _mm512_4dpwssd_epi32(ai, bi, ci, di, ei, memi);
|
||||
ai = _mm512_popcnt_epi64(ai);
|
||||
}
|
||||
#else
|
||||
#error "AVX512-KNM is not supported"
|
||||
#endif
|
||||
int main() { return 0; }
|
32
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512skx.cpp
vendored
Normal file
32
3rdparty/opencv-4.5.4/cmake/checks/cpu_avx512skx.cpp
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
#if defined __AVX512__ || defined __AVX512F__
|
||||
#include <immintrin.h>
|
||||
|
||||
// Workaround for problem with GCC 5-6 in -O0 mode
|
||||
struct v_uint32x16
|
||||
{
|
||||
__m512i val;
|
||||
explicit v_uint32x16(__m512i v) : val(v) {}
|
||||
};
|
||||
inline v_uint32x16 operator << (const v_uint32x16& a, int imm)
|
||||
{
|
||||
return v_uint32x16(_mm512_slli_epi32(a.val, imm));
|
||||
}
|
||||
|
||||
void test()
|
||||
{
|
||||
__m512i zmm = _mm512_setzero_si512();
|
||||
__m256i a = _mm256_setzero_si256();
|
||||
__m256i b = _mm256_abs_epi64(a); // VL
|
||||
__m512i c = _mm512_abs_epi8(zmm); // BW
|
||||
__m512i d = _mm512_broadcast_i32x8(b); // DQ
|
||||
v_uint32x16 e(d); e = e << 10;
|
||||
__m512i f = _mm512_packus_epi32(d,d);
|
||||
#if defined __GNUC__ && defined __x86_64__
|
||||
asm volatile ("" : : : "zmm16", "zmm17", "zmm18", "zmm19");
|
||||
#endif
|
||||
}
|
||||
|
||||
#else
|
||||
#error "AVX512-SKX is not supported"
|
||||
#endif
|
||||
int main() { return 0; }
|
33
3rdparty/opencv-4.5.4/cmake/checks/cpu_fp16.cpp
vendored
Normal file
33
3rdparty/opencv-4.5.4/cmake/checks/cpu_fp16.cpp
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined __F16C__ || (defined _MSC_VER && _MSC_VER >= 1700 && defined __AVX__) || (defined __INTEL_COMPILER && defined __AVX__)
|
||||
#include <immintrin.h>
|
||||
int test()
|
||||
{
|
||||
const float src[] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||
short dst[8];
|
||||
__m128 v_src = _mm_load_ps(src);
|
||||
__m128i v_dst = _mm_cvtps_ph(v_src, 0);
|
||||
_mm_storel_epi64((__m128i*)dst, v_dst);
|
||||
return (int)dst[0];
|
||||
}
|
||||
#elif defined __GNUC__ && (defined __arm__ || defined __aarch64__)
|
||||
#include "arm_neon.h"
|
||||
int test()
|
||||
{
|
||||
const float src[] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||
short dst[8];
|
||||
float32x4_t v_src = *(float32x4_t*)src;
|
||||
float16x4_t v_dst = vcvt_f16_f32(v_src);
|
||||
*(float16x4_t*)dst = v_dst;
|
||||
return (int)dst[0];
|
||||
}
|
||||
#else
|
||||
#error "FP16 is not supported"
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("%d\n", test());
|
||||
return 0;
|
||||
}
|
23
3rdparty/opencv-4.5.4/cmake/checks/cpu_msa.cpp
vendored
Normal file
23
3rdparty/opencv-4.5.4/cmake/checks/cpu_msa.cpp
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined(__mips_msa)
|
||||
# include <msa.h>
|
||||
# define CV_MSA 1
|
||||
#endif
|
||||
|
||||
#if defined CV_MSA
|
||||
int test()
|
||||
{
|
||||
const float src[] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||
v4f32 val = (v4f32)__msa_ld_w((const float*)(src), 0);
|
||||
return __msa_copy_s_w(__builtin_msa_ftint_s_w (val), 0);
|
||||
}
|
||||
#else
|
||||
#error "MSA is not supported"
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("%d\n", test());
|
||||
return 0;
|
||||
}
|
31
3rdparty/opencv-4.5.4/cmake/checks/cpu_neon.cpp
vendored
Normal file
31
3rdparty/opencv-4.5.4/cmake/checks/cpu_neon.cpp
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined _WIN32 && (defined(_M_ARM) || defined(_M_ARM64))
|
||||
# include <Intrin.h>
|
||||
# include <arm_neon.h>
|
||||
# define CV_NEON 1
|
||||
#elif defined(__ARM_NEON__) || (defined (__ARM_NEON) && defined(__aarch64__))
|
||||
# include <arm_neon.h>
|
||||
# define CV_NEON 1
|
||||
#endif
|
||||
|
||||
// MSVC 2019 bug. Details: https://github.com/opencv/opencv/pull/16027
|
||||
void test_aliased_type(const uint8x16_t& a) { }
|
||||
void test_aliased_type(const int8x16_t& a) { }
|
||||
|
||||
#if defined CV_NEON
|
||||
int test()
|
||||
{
|
||||
const float src[] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||
float32x4_t val = vld1q_f32((const float32_t*)(src));
|
||||
return (int)vgetq_lane_f32(val, 0);
|
||||
}
|
||||
#else
|
||||
#error "NEON is not supported"
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("%d\n", test());
|
||||
return 0;
|
||||
}
|
24
3rdparty/opencv-4.5.4/cmake/checks/cpu_popcnt.cpp
vendored
Normal file
24
3rdparty/opencv-4.5.4/cmake/checks/cpu_popcnt.cpp
vendored
Normal file
@ -0,0 +1,24 @@
|
||||
#ifdef _MSC_VER
|
||||
# include <nmmintrin.h>
|
||||
# if defined(_M_X64)
|
||||
# define CV_POPCNT_U64 _mm_popcnt_u64
|
||||
# endif
|
||||
# define CV_POPCNT_U32 _mm_popcnt_u32
|
||||
#elif defined(__POPCNT__)
|
||||
# include <popcntintrin.h>
|
||||
# if defined(__x86_64__)
|
||||
# define CV_POPCNT_U64 __builtin_popcountll
|
||||
# endif
|
||||
# define CV_POPCNT_U32 __builtin_popcount
|
||||
#else
|
||||
# error "__POPCNT__ is not defined by compiler"
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
#ifdef CV_POPCNT_U64
|
||||
int i = CV_POPCNT_U64(1);
|
||||
#endif
|
||||
int j = CV_POPCNT_U32(1);
|
||||
return 0;
|
||||
}
|
23
3rdparty/opencv-4.5.4/cmake/checks/cpu_rvv.cpp
vendored
Normal file
23
3rdparty/opencv-4.5.4/cmake/checks/cpu_rvv.cpp
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#if defined(__riscv)
|
||||
# include <riscv_vector.h>
|
||||
# define CV_RVV 1
|
||||
#endif
|
||||
|
||||
#if defined CV_RVV
|
||||
int test()
|
||||
{
|
||||
const float src[] = { 0.0f, 0.0f, 0.0f, 0.0f };
|
||||
vfloat32m1_t val = vle32_v_f32m1((const float*)(src), 4);
|
||||
return (int)vfmv_f_s_f32m1_f32(val);
|
||||
}
|
||||
#else
|
||||
#error "RISC-V vector extension(RVV) is not supported"
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
printf("%d\n", test());
|
||||
return 0;
|
||||
}
|
2
3rdparty/opencv-4.5.4/cmake/checks/cpu_sse.cpp
vendored
Normal file
2
3rdparty/opencv-4.5.4/cmake/checks/cpu_sse.cpp
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
#include <xmmintrin.h>
|
||||
int main() { return 0; }
|
2
3rdparty/opencv-4.5.4/cmake/checks/cpu_sse2.cpp
vendored
Normal file
2
3rdparty/opencv-4.5.4/cmake/checks/cpu_sse2.cpp
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
#include <emmintrin.h>
|
||||
int main() { return 0; }
|
7
3rdparty/opencv-4.5.4/cmake/checks/cpu_sse3.cpp
vendored
Normal file
7
3rdparty/opencv-4.5.4/cmake/checks/cpu_sse3.cpp
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
#include <pmmintrin.h>
|
||||
int main() {
|
||||
__m128 u, v;
|
||||
u = _mm_set1_ps(0.0f);
|
||||
v = _mm_moveldup_ps(u); // SSE3
|
||||
return 0;
|
||||
}
|
6
3rdparty/opencv-4.5.4/cmake/checks/cpu_sse41.cpp
vendored
Normal file
6
3rdparty/opencv-4.5.4/cmake/checks/cpu_sse41.cpp
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
#include <smmintrin.h>
|
||||
int main() {
|
||||
__m128i a = _mm_setzero_si128(), b = _mm_setzero_si128();
|
||||
__m128i c = _mm_packus_epi32(a, b);
|
||||
return 0;
|
||||
}
|
7
3rdparty/opencv-4.5.4/cmake/checks/cpu_sse42.cpp
vendored
Normal file
7
3rdparty/opencv-4.5.4/cmake/checks/cpu_sse42.cpp
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
#include <nmmintrin.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
unsigned int res = _mm_crc32_u8(1, 2);
|
||||
return 0;
|
||||
}
|
7
3rdparty/opencv-4.5.4/cmake/checks/cpu_ssse3.cpp
vendored
Normal file
7
3rdparty/opencv-4.5.4/cmake/checks/cpu_ssse3.cpp
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
#include <tmmintrin.h>
|
||||
const double v = 0;
|
||||
int main() {
|
||||
__m128i a = _mm_setzero_si128();
|
||||
__m128i b = _mm_abs_epi32(a);
|
||||
return 0;
|
||||
}
|
16
3rdparty/opencv-4.5.4/cmake/checks/cpu_vsx.cpp
vendored
Normal file
16
3rdparty/opencv-4.5.4/cmake/checks/cpu_vsx.cpp
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
#if defined(__VSX__)
|
||||
#if defined(__PPC64__) && defined(__LITTLE_ENDIAN__)
|
||||
#include <altivec.h>
|
||||
#else
|
||||
#error "OpenCV only supports little-endian mode"
|
||||
#endif
|
||||
#else
|
||||
#error "VSX is not supported"
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
__vector float testF = vec_splats(0.f);
|
||||
testF = vec_madd(testF, testF, testF);
|
||||
return 0;
|
||||
}
|
17
3rdparty/opencv-4.5.4/cmake/checks/cpu_vsx3.cpp
vendored
Normal file
17
3rdparty/opencv-4.5.4/cmake/checks/cpu_vsx3.cpp
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
#if defined(__VSX__)
|
||||
#if defined(__PPC64__) && defined(__LITTLE_ENDIAN__)
|
||||
#include <altivec.h>
|
||||
#else
|
||||
#error "OpenCV only supports little-endian mode"
|
||||
#endif
|
||||
#else
|
||||
#error "VSX3 is not supported"
|
||||
#endif
|
||||
|
||||
int main()
|
||||
{
|
||||
__vector unsigned char a = vec_splats((unsigned char)1);
|
||||
__vector unsigned char b = vec_splats((unsigned char)2);
|
||||
__vector unsigned char r = vec_absd(a, b);
|
||||
return 0;
|
||||
}
|
21
3rdparty/opencv-4.5.4/cmake/checks/cpu_vsx_asm.cpp
vendored
Normal file
21
3rdparty/opencv-4.5.4/cmake/checks/cpu_vsx_asm.cpp
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
#if defined(__VSX__)
|
||||
#if defined(__PPC64__) && defined(__LITTLE_ENDIAN__)
|
||||
#include <altivec.h>
|
||||
#else
|
||||
#error "OpenCV only supports little-endian mode"
|
||||
#endif
|
||||
#else
|
||||
#error "VSX is not supported"
|
||||
#endif
|
||||
|
||||
/*
|
||||
* xlc and wide versions of clang don't support %x<n> in the inline asm template which fixes register number
|
||||
* when using any of the register constraints wa, wd, wf
|
||||
*/
|
||||
int main()
|
||||
{
|
||||
__vector float vf;
|
||||
__vector signed int vi;
|
||||
__asm__ __volatile__ ("xvcvsxwsp %x0,%x1" : "=wa" (vf) : "wa" (vi));
|
||||
return 0;
|
||||
}
|
13
3rdparty/opencv-4.5.4/cmake/checks/cxx11.cpp
vendored
Normal file
13
3rdparty/opencv-4.5.4/cmake/checks/cxx11.cpp
vendored
Normal file
@ -0,0 +1,13 @@
|
||||
#if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1600)
|
||||
// OK
|
||||
#else
|
||||
#error "C++11 is not supported"
|
||||
#endif
|
||||
|
||||
static int test() { return 0; }
|
||||
|
||||
int main()
|
||||
{
|
||||
auto res = test();
|
||||
return res;
|
||||
}
|
74
3rdparty/opencv-4.5.4/cmake/checks/directx.cpp
vendored
Normal file
74
3rdparty/opencv-4.5.4/cmake/checks/directx.cpp
vendored
Normal file
@ -0,0 +1,74 @@
|
||||
#include <windows.h>
|
||||
|
||||
#include <d3d11.h>
|
||||
#pragma comment (lib, "d3d11.lib")
|
||||
|
||||
HINSTANCE g_hInst = NULL;
|
||||
D3D_DRIVER_TYPE g_driverType = D3D_DRIVER_TYPE_NULL;
|
||||
D3D_FEATURE_LEVEL g_featureLevel = D3D_FEATURE_LEVEL_11_0;
|
||||
ID3D11Device* g_pd3dDevice = NULL;
|
||||
ID3D11DeviceContext* g_pImmediateContext = NULL;
|
||||
IDXGISwapChain* g_pSwapChain = NULL;
|
||||
|
||||
static HRESULT InitDevice()
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
|
||||
UINT width = 640;
|
||||
UINT height = 480;
|
||||
|
||||
UINT createDeviceFlags = 0;
|
||||
|
||||
D3D_DRIVER_TYPE driverTypes[] =
|
||||
{
|
||||
D3D_DRIVER_TYPE_HARDWARE,
|
||||
D3D_DRIVER_TYPE_WARP,
|
||||
D3D_DRIVER_TYPE_REFERENCE,
|
||||
};
|
||||
UINT numDriverTypes = ARRAYSIZE(driverTypes);
|
||||
|
||||
D3D_FEATURE_LEVEL featureLevels[] =
|
||||
{
|
||||
D3D_FEATURE_LEVEL_11_0,
|
||||
D3D_FEATURE_LEVEL_10_1,
|
||||
D3D_FEATURE_LEVEL_10_0,
|
||||
};
|
||||
UINT numFeatureLevels = ARRAYSIZE(featureLevels);
|
||||
|
||||
DXGI_SWAP_CHAIN_DESC sd;
|
||||
ZeroMemory( &sd, sizeof( sd ) );
|
||||
sd.BufferCount = 1;
|
||||
sd.BufferDesc.Width = width;
|
||||
sd.BufferDesc.Height = height;
|
||||
#ifdef CHECK_NV12
|
||||
sd.BufferDesc.Format = DXGI_FORMAT_NV12;
|
||||
#else
|
||||
sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
|
||||
#endif
|
||||
sd.BufferDesc.RefreshRate.Numerator = 60;
|
||||
sd.BufferDesc.RefreshRate.Denominator = 1;
|
||||
sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
|
||||
sd.OutputWindow = NULL; //g_hWnd;
|
||||
sd.SampleDesc.Count = 1;
|
||||
sd.SampleDesc.Quality = 0;
|
||||
sd.Windowed = TRUE;
|
||||
|
||||
for (UINT driverTypeIndex = 0; driverTypeIndex < numDriverTypes; driverTypeIndex++)
|
||||
{
|
||||
g_driverType = driverTypes[driverTypeIndex];
|
||||
hr = D3D11CreateDeviceAndSwapChain(NULL, g_driverType, NULL, createDeviceFlags, featureLevels, numFeatureLevels,
|
||||
D3D11_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice, &g_featureLevel, &g_pImmediateContext);
|
||||
if (SUCCEEDED(hr))
|
||||
break;
|
||||
}
|
||||
if (FAILED(hr))
|
||||
return hr;
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
int main(int /*argc*/, char** /*argv*/)
|
||||
{
|
||||
InitDevice();
|
||||
return 0;
|
||||
}
|
29
3rdparty/opencv-4.5.4/cmake/checks/ffmpeg_test.cpp
vendored
Normal file
29
3rdparty/opencv-4.5.4/cmake/checks/ffmpeg_test.cpp
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
#define __STDC_CONSTANT_MACROS
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
extern "C" {
|
||||
#include <libavformat/avformat.h>
|
||||
#include <libavcodec/avcodec.h>
|
||||
#include <libswscale/swscale.h>
|
||||
}
|
||||
|
||||
#define CALC_FFMPEG_VERSION(a,b,c) ( a<<16 | b<<8 | c )
|
||||
|
||||
static void test()
|
||||
{
|
||||
AVFormatContext* c = 0;
|
||||
AVCodec* avcodec = 0;
|
||||
AVFrame* frame = 0;
|
||||
(void)avcodec;
|
||||
(void)frame;
|
||||
|
||||
#if LIBAVFORMAT_BUILD >= CALC_FFMPEG_VERSION(52, 111, 0)
|
||||
int err = avformat_open_input(&c, "", NULL, NULL);
|
||||
#else
|
||||
int err = av_open_input_file(&c, "", NULL, 0, NULL);
|
||||
#endif
|
||||
(void)err;
|
||||
}
|
||||
|
||||
int main() { test(); return 0; }
|
15
3rdparty/opencv-4.5.4/cmake/checks/lapack_check.cpp
vendored
Normal file
15
3rdparty/opencv-4.5.4/cmake/checks/lapack_check.cpp
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
#include <complex.h>
|
||||
#include "opencv_lapack.h"
|
||||
|
||||
static char* check_fn1 = (char*)sgesv_;
|
||||
static char* check_fn2 = (char*)sposv_;
|
||||
static char* check_fn3 = (char*)spotrf_;
|
||||
static char* check_fn4 = (char*)sgesdd_;
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
(void)argv;
|
||||
if(argc > 1000)
|
||||
return check_fn1[0] + check_fn2[0] + check_fn3[0] + check_fn4[0];
|
||||
return 0;
|
||||
}
|
21
3rdparty/opencv-4.5.4/cmake/checks/opencl.cpp
vendored
Normal file
21
3rdparty/opencv-4.5.4/cmake/checks/opencl.cpp
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
// custom OpenCL headers are located in "CL" subfolder (3rdparty/include/...)
|
||||
#include <CL/cl.h>
|
||||
|
||||
#ifndef _MSC_VER
|
||||
#ifdef CL_VERSION_1_2
|
||||
#error OpenCL is valid
|
||||
#else
|
||||
#error OpenCL check failed
|
||||
#endif
|
||||
#else
|
||||
#ifdef CL_VERSION_1_2
|
||||
#pragma message ("OpenCL is valid")
|
||||
#else
|
||||
#pragma message ("OpenCL check failed")
|
||||
#endif
|
||||
#endif
|
||||
|
||||
int main(int /*argc*/, char** /*argv*/)
|
||||
{
|
||||
return 0;
|
||||
}
|
5
3rdparty/opencv-4.5.4/cmake/checks/openvx_refenum_test.cpp
vendored
Normal file
5
3rdparty/opencv-4.5.4/cmake/checks/openvx_refenum_test.cpp
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
#include <VX/vx.h>
|
||||
int main()
|
||||
{
|
||||
return VX_REFERENCE_COUNT == VX_REFERENCE_TYPE ? VX_REFERENCE_NAME : 0;
|
||||
}
|
56
3rdparty/opencv-4.5.4/cmake/checks/runtime/cpu_vsx_aligned.cpp
vendored
Normal file
56
3rdparty/opencv-4.5.4/cmake/checks/runtime/cpu_vsx_aligned.cpp
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
// check sanity of vsx aligned ld/st
|
||||
// https://github.com/opencv/opencv/issues/13211
|
||||
|
||||
#include <altivec.h>
|
||||
#undef bool
|
||||
|
||||
#define vsx_ld vec_vsx_ld
|
||||
#define vsx_st vec_vsx_st
|
||||
|
||||
template<typename T>
|
||||
static void fill(T& d, int from = 0, int to = 16)
|
||||
{
|
||||
for (int i = from; i < to; i++)
|
||||
d[i] = i;
|
||||
}
|
||||
|
||||
template<typename T, typename Tvec>
|
||||
static bool check_data(T& d, Tvec& v, int from = 0, int to = 16)
|
||||
{
|
||||
for (int i = from; i < to; i++)
|
||||
{
|
||||
if (d[i] != vec_extract(v, i))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
unsigned char __attribute__ ((aligned (16))) rbuf[16];
|
||||
unsigned char __attribute__ ((aligned (16))) wbuf[16];
|
||||
__vector unsigned char a;
|
||||
|
||||
// 1- check aligned load and store
|
||||
fill(rbuf);
|
||||
a = vec_ld(0, rbuf);
|
||||
if (!check_data(rbuf, a))
|
||||
return 1;
|
||||
vec_st(a, 0, wbuf);
|
||||
if (!check_data(wbuf, a))
|
||||
return 11;
|
||||
|
||||
// 2- check mixing aligned load and unaligned store
|
||||
a = vec_ld(0, rbuf);
|
||||
vsx_st(a, 0, wbuf);
|
||||
if (!check_data(wbuf, a))
|
||||
return 2;
|
||||
|
||||
// 3- check mixing unaligned load and aligned store
|
||||
a = vsx_ld(0, rbuf);
|
||||
vec_st(a, 0, wbuf);
|
||||
if (!check_data(wbuf, a))
|
||||
return 3;
|
||||
|
||||
return 0;
|
||||
}
|
9
3rdparty/opencv-4.5.4/cmake/checks/vtk_test.cpp
vendored
Normal file
9
3rdparty/opencv-4.5.4/cmake/checks/vtk_test.cpp
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
#include <vtkSmartPointer.h>
|
||||
#include <vtkTransform.h>
|
||||
#include <vtkMath.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
vtkSmartPointer<vtkTransform> transform = vtkSmartPointer<vtkTransform>::New();
|
||||
return 0;
|
||||
}
|
6
3rdparty/opencv-4.5.4/cmake/checks/vulkan.cpp
vendored
Normal file
6
3rdparty/opencv-4.5.4/cmake/checks/vulkan.cpp
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
#include <vulkan/vulkan.h>
|
||||
|
||||
int main(int /*argc*/, char** /*argv*/)
|
||||
{
|
||||
return 0;
|
||||
}
|
11
3rdparty/opencv-4.5.4/cmake/checks/win32uitest.cpp
vendored
Normal file
11
3rdparty/opencv-4.5.4/cmake/checks/win32uitest.cpp
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
#include <windows.h>
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
CreateWindow(NULL /*lpClassName*/, NULL /*lpWindowName*/, 0 /*dwStyle*/, 0 /*x*/,
|
||||
0 /*y*/, 0 /*nWidth*/, 0 /*nHeight*/, NULL /*hWndParent*/, NULL /*hMenu*/,
|
||||
NULL /*hInstance*/, NULL /*lpParam*/);
|
||||
DeleteDC(NULL);
|
||||
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user