vendor: OpenCV 5.0.0 snapshot at 40738fb16ceddb5fb3fea747585f7ce6abb0605b

This commit is contained in:
Gitea Mirror Bot
2026-08-22 00:10:33 +08:00
commit f7f077da11
6933 changed files with 2335208 additions and 0 deletions
+25
View 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
View File
@@ -0,0 +1,12 @@
#include <atomic>
static int test()
{
std::atomic<long long> x;
return x;
}
int main()
{
return test();
}
+20
View File
@@ -0,0 +1,20 @@
#include <acl/acl.h>
#include <unistd.h> // fork()
#include <iostream>
int main(int /*argc*/, char** /*argv*/)
{
int ret = aclInit(NULL);
if (ret != 0)
{
std::cerr << "Failed to initialize Ascend, ret = " << ret;
}
ret = aclFinalize();
if (ret != 0)
{
std::cerr << "Failed to de-initialize Ascend, ret = " << ret;
}
return 0;
}
+9
View File
@@ -0,0 +1,9 @@
#if !defined __AVX__
#error "__AVX__ define is missing"
#endif
#include <immintrin.h>
void test()
{
__m256 a = _mm256_set1_ps(0.0f);
}
int main() { return 0; }
+11
View File
@@ -0,0 +1,11 @@
#if !defined __AVX2__
#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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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; }
+55
View File
@@ -0,0 +1,55 @@
#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__)) /*|| (defined _MSC_VER && defined _M_ARM64)*/
// Windows + ARM64 case disabled: https://github.com/opencv/opencv/issues/25052
#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];
}
#elif (defined __riscv_zvfhmin && __riscv_zvfhmin) || (defined __riscv_zvfh && __riscv_zvfh)
#include <riscv_vector.h>
int test()
{
const _Float16 input1[] = {0.5f, 1.5f, 2.5f, 3.5f};
const float input2[] = {-0.5f, -1.5f, -2.5f, -3.5f};
short dst[4];
size_t vl = __riscv_vsetvl_e16m1(4);
vfloat16m1_t in_f16 = __riscv_vle16_v_f16m1(input1, vl);
vfloat32m2_t in_f32 = __riscv_vle32_v_f32m2(input2, vl);
vfloat32m2_t cvt_f32 = __riscv_vfwcvt_f_f_v_f32m2(in_f16, vl);
vfloat32m2_t res_f32 = __riscv_vfadd(in_f32, cvt_f32, vl);
vfloat16m1_t res_f16 = __riscv_vfncvt_f_f_w_f16m1(res_f32, vl);
__riscv_vse16_v_f16m1((_Float16*)dst, res_f16, vl);
return (int)dst[0];
}
#else
#error "FP16 is not supported"
#endif
int main()
{
printf("%d\n", test());
return 0;
}
+23
View File
@@ -0,0 +1,23 @@
#include <stdio.h>
#if defined(__loongarch_asx)
# include <lasxintrin.h>
# define CV_LASX 1
#endif
#if defined CV_LASX
int test()
{
const float src[] = { 0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f };
v8f32 val = (v8f32)__lasx_xvld((const float*)(src), 0);
return __lasx_xvpickve2gr_w(__lasx_xvftint_w_s (val), 7);
}
#else
#error "LASX is not supported"
#endif
int main()
{
printf("%d\n", test());
return 0;
}
+15
View File
@@ -0,0 +1,15 @@
#include <stdio.h>
#include <lsxintrin.h>
int test()
{
const float src[] = { 0.0f, 1.0f, 2.0f, 3.0f};
v4f32 val = (v4f32)__lsx_vld((const float*)(src), 0);
return __lsx_vpickve2gr_w(__lsx_vftint_w_s(val), 3);
}
int main()
{
printf("%d\n", test());
return 0;
}
+23
View 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;
}
+32
View File
@@ -0,0 +1,32 @@
#include <stdio.h>
#if defined _WIN32 && (defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC))
# define _ARM64_DISTINCT_NEON_TYPES
# include <Intrin.h>
# include <arm_neon.h>
# define CV_NEON 1
#elif defined(__ARM_NEON)
# 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;
}
+46
View File
@@ -0,0 +1,46 @@
#if (defined __GNUC__ && (defined __arm__ || defined __aarch64__)) || (defined _MSC_VER && (defined _M_ARM64 || defined _M_ARM64EC))
#include <stdio.h>
#include "arm_neon.h"
/*#if defined __clang__
#pragma clang attribute push (__attribute__((target("bf16"))), apply_to=function)
#elif defined GCC
#pragma GCC push_options
#pragma GCC target("armv8.2-a", "bf16")
#endif*/
bfloat16x8_t vld1q_as_bf16(const float* src)
{
float32x4_t s0 = vld1q_f32(src), s1 = vld1q_f32(src + 4);
return vcombine_bf16(vcvt_bf16_f32(s0), vcvt_bf16_f32(s1));
}
void vprintreg(const char* name, const float32x4_t& r)
{
float data[4];
vst1q_f32(data, r);
printf("%s: (%.2f, %.2f, %.2f, %.2f)\n",
name, data[0], data[1], data[2], data[3]);
}
void test()
{
const float src1[] = { 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f };
const float src2[] = { 1.f, 3.f, 6.f, 10.f, 15.f, 21.f, 28.f, 36.f };
bfloat16x8_t s1 = vld1q_as_bf16(src1), s2 = vld1q_as_bf16(src2);
float32x4_t d = vbfdotq_f32(vdupq_n_f32(0.f), s1, s2);
vprintreg("(s1[0]*s2[0] + s1[1]*s2[1], ... s1[6]*s2[6] + s1[7]*s2[7])", d);
}
/*#if defined __clang__
#pragma clang attribute pop
#elif defined GCC
#pragma GCC pop_options
#endif*/
#else
#error "BF16 is not supported"
#endif
int main()
{
test();
return 0;
}
+26
View File
@@ -0,0 +1,26 @@
#include <stdio.h>
#if (defined __GNUC__ && (defined __arm__ || defined __aarch64__))/* || (defined _MSC_VER && (defined _M_ARM64 || defined _M_ARM64EC)) */
// Windows + ARM64 case disabled: https://github.com/opencv/opencv/issues/25052
#include "arm_neon.h"
int test()
{
const unsigned int src[] = { 0, 0, 0, 0 };
unsigned int dst[4];
uint32x4_t v_src = *(uint32x4_t*)src;
uint8x16_t v_m0 = *(uint8x16_t*)src;
uint8x16_t v_m1 = *(uint8x16_t*)src;
uint32x4_t v_dst = vdotq_u32(v_src, v_m0, v_m1);
*(uint32x4_t*)dst = v_dst;
return (int)dst[0];
}
#else
#error "DOTPROD is not supported"
#endif
int main()
{
printf("%d\n", test());
return 0;
}
+47
View File
@@ -0,0 +1,47 @@
#include <stdio.h>
#if (defined __GNUC__ && (defined __arm__ || defined __aarch64__)) /* || (defined _MSC_VER && (defined _M_ARM64 || defined _M_ARM64EC)) */
// Windows + ARM64 case disabled: https://github.com/opencv/opencv/issues/25052
#include "arm_neon.h"
float16x8_t vld1q_as_f16(const float* src)
{
float32x4_t s0 = vld1q_f32(src), s1 = vld1q_f32(src + 4);
return vcombine_f16(vcvt_f16_f32(s0), vcvt_f16_f32(s1));
}
void vprintreg(const char* name, const float16x8_t& r)
{
float data[8];
vst1q_f32(data, vcvt_f32_f16(vget_low_f16(r)));
vst1q_f32(data + 4, vcvt_f32_f16(vget_high_f16(r)));
printf("%s: (%.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f, %.2f)\n",
name, data[0], data[1], data[2], data[3],
data[4], data[5], data[6], data[7]);
}
void test()
{
const float src1[] = { 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f };
const float src2[] = { 1.f, 3.f, 6.f, 10.f, 15.f, 21.f, 28.f, 36.f };
float16x8_t s1 = vld1q_as_f16(src1), s2 = vld1q_as_f16(src2);
float16x8_t d = vsubq_f16(s1, s1);
d = vfmaq_laneq_f16(d, s1, s2, 0);
d = vfmaq_laneq_f16(d, s1, s2, 1);
d = vfmaq_laneq_f16(d, s1, s2, 2);
d = vfmaq_laneq_f16(d, s1, s2, 3);
d = vfmaq_laneq_f16(d, s1, s2, 4);
d = vfmaq_laneq_f16(d, s1, s2, 5);
d = vfmaq_laneq_f16(d, s1, s2, 6);
d = vfmaq_laneq_f16(d, s1, s2, 7);
vprintreg("s1*s2[0]+s1*s2[1] + ... + s1*s2[7]", d);
}
#else
#error "NEON FP16 is not supported"
#endif
int main()
{
test();
return 0;
}
+24
View 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;
}
+37
View File
@@ -0,0 +1,37 @@
#include <stdio.h>
#if !defined(__riscv) || !defined(__riscv_v)
#error "RISC-V or vector extension(RVV) is not supported by the compiler"
#endif
#if !defined(__THEAD_VERSION__) && defined(__riscv_v_intrinsic) && __riscv_v_intrinsic < 12000
#error "Wrong intrinsics version, v0.12 or higher is required for gcc or clang"
#endif
#include <riscv_vector.h>
#ifdef __THEAD_VERSION__
int test()
{
const float src[] = { 0.0f, 0.0f, 0.0f, 0.0f };
uint64_t ptr[2] = {0x0908060504020100, 0xFFFFFFFF0E0D0C0A};
vuint8m1_t a = vreinterpret_v_u64m1_u8m1(vle64_v_u64m1(ptr, 2));
vfloat32m1_t val = vle32_v_f32m1((const float*)(src), 4);
return (int)vfmv_f_s_f32m1_f32(val);
}
#else
int test()
{
const float src[] = { 0.0f, 0.0f, 0.0f, 0.0f };
uint64_t ptr[2] = {0x0908060504020100, 0xFFFFFFFF0E0D0C0A};
vuint8m1_t a = __riscv_vreinterpret_v_u64m1_u8m1(__riscv_vle64_v_u64m1(ptr, 2));
vfloat32m1_t val = __riscv_vle32_v_f32m1((const float*)(src), 4);
return (int)__riscv_vfmv_f_s_f32m1_f32(val);
}
#endif
int main()
{
printf("%d\n", test());
return 0;
}
+25
View File
@@ -0,0 +1,25 @@
#include <stdio.h>
#if defined(__riscv) && __riscv && defined (__riscv_zvfh) && __riscv_zvfh
# include <riscv_vector.h>
int test()
{
const _Float16 input1[] = {0.5f, 1.5f, 2.5f, 3.5f};
const _Float16 input2[] = {-0.5f, -1.5f, -2.5f, -3.5f};
size_t vl = __riscv_vsetvl_e16m1(4);
vfloat16m1_t vec1 = __riscv_vle16_v_f16m1(input1, vl);
vfloat16m1_t vec2 = __riscv_vle16_v_f16m1(input2, vl);
vfloat16m1_t result = __riscv_vfadd_vv_f16m1(vec1, vec2, vl);
return (int)__riscv_vfmv_f_s_f16m1_f16(result);
}
#else
#error "RISC-V Vector Extension with Half-Precision Floating-Point (zvfh) is not supported"
#endif
int main()
{
printf("%d\n", test());
return 0;
}
+2
View File
@@ -0,0 +1,2 @@
#include <xmmintrin.h>
int main() { return 0; }
+16
View File
@@ -0,0 +1,16 @@
#include <emmintrin.h>
inline __m128i _v128_comgt_epu32(const __m128i& a, const __m128i& b)
{
const __m128i delta = _mm_set1_epi32((int)0x80000000);
return _mm_cmpgt_epi32(_mm_xor_si128(a, delta), _mm_xor_si128(b, delta));
}
int main()
{
__m128i a, b, c;
a = _mm_set1_epi32(0x00000000);
b = _mm_set1_epi32(0x0000ffff);
c = _v128_comgt_epu32(a, b);
return 0;
}
+7
View 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
View 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
View File
@@ -0,0 +1,7 @@
#include <nmmintrin.h>
int main()
{
unsigned int res = _mm_crc32_u8(1, 2);
return 0;
}
+7
View 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;
}
+24
View File
@@ -0,0 +1,24 @@
#include <stdio.h>
#if defined(__ARM_FEATURE_SVE)
# include <arm_sve.h>
# define CV_SVE 1
#endif
#if defined(CV_SVE)
int test()
{
const float src[1024] = {0.0};
svbool_t pg = svptrue_b32();
svfloat32_t val = svld1(pg, src);
return (int)svlastb_f32(pg, val);
}
#else
#error "SVE is not supported"
#endif
int main()
{
printf("%d\n", test());
return 0;
}
+16
View 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
View 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
View 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;
}
+38
View File
@@ -0,0 +1,38 @@
#include <initguid.h>
#include <d3d11.h>
#include <dxgi1_2.h>
#include <dxgi1_4.h>
#include <dxgi.h>
#include <dxcore.h>
#include <dxcore_interface.h>
#include <d3d12.h>
#include <directml.h>
int main(int /*argc*/, char** /*argv*/)
{
IDXCoreAdapterFactory* factory;
DXCoreCreateAdapterFactory(__uuidof(IDXCoreAdapterFactory), (void**)&factory);
IDXCoreAdapterList* adapterList;
const GUID dxGUIDs[] = { DXCORE_ADAPTER_ATTRIBUTE_D3D12_CORE_COMPUTE };
factory->CreateAdapterList(ARRAYSIZE(dxGUIDs), dxGUIDs, __uuidof(IDXCoreAdapterList), (void**)&adapterList);
IDXCoreAdapter* adapter;
adapterList->GetAdapter(0u, __uuidof(IDXCoreAdapter), (void**)&adapter);
D3D_FEATURE_LEVEL d3dFeatureLevel = D3D_FEATURE_LEVEL_1_0_CORE;
ID3D12Device* d3d12Device = NULL;
D3D12CreateDevice((IUnknown*)adapter, d3dFeatureLevel, __uuidof(ID3D11Device), (void**)&d3d12Device);
D3D12_COMMAND_LIST_TYPE commandQueueType = D3D12_COMMAND_LIST_TYPE_COMPUTE;
ID3D12CommandQueue* cmdQueue;
D3D12_COMMAND_QUEUE_DESC commandQueueDesc = {};
commandQueueDesc.Type = commandQueueType;
d3d12Device->CreateCommandQueue(&commandQueueDesc, __uuidof(ID3D12CommandQueue), (void**)&cmdQueue);
IDMLDevice* dmlDevice;
DMLCreateDevice(d3d12Device, DML_CREATE_DEVICE_FLAG_NONE, IID_PPV_ARGS(&dmlDevice));
return 0;
}
+73
View File
@@ -0,0 +1,73 @@
#include <windows.h>
#include <d3d11.h>
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
View 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; }
+9
View File
@@ -0,0 +1,9 @@
#include <X11/XWDFile.h>
#include <X11/X.h>
int main(void)
{
XWDFileHeader *xwd_header;
XWDColor *xwd_colors;
return 0;
}
+15
View 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
View 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;
}
+56
View 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
View 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
View File
@@ -0,0 +1,6 @@
#include <vulkan/vulkan.h>
int main(int /*argc*/, char** /*argv*/)
{
return 0;
}
+23
View File
@@ -0,0 +1,23 @@
#include <webnn/webnn_cpp.h>
#include <webnn/webnn.h>
#ifdef __EMSCRIPTEN__
#include <emscripten.h>
#include <emscripten/html5.h>
#include <emscripten/html5_webnn.h>
#else
#include <webnn/webnn_proc.h>
#include <webnn_native/WebnnNative.h>
#endif
int main(int /*argc*/, char** /*argv*/)
{
#ifdef __EMSCRIPTEN__
ml::Context ml_context = ml::Context(emscripten_webnn_create_context());
#else
WebnnProcTable backendProcs = webnn_native::GetProcs();
webnnProcSetProcs(&backendProcs);
ml::Context ml_context = ml::Context(webnn_native::CreateContext());
#endif
return 0;
}
+11
View 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;
}