FreeRDP
Loading...
Searching...
No Matches
prim_YUV.h
1
21#ifndef FREERDP_LIB_PRIM_YUV_H
22#define FREERDP_LIB_PRIM_YUV_H
23
24#include <winpr/wtypes.h>
25#include <winpr/sysinfo.h>
26
27#include <freerdp/config.h>
28#include <freerdp/primitives.h>
29
30#include "prim_internal.h"
31
32FREERDP_LOCAL void primitives_init_YUV_sse41_int(primitives_t* WINPR_RESTRICT prims);
33static inline void primitives_init_YUV_sse41(primitives_t* WINPR_RESTRICT prims)
34{
35 if (!IsProcessorFeaturePresentEx(PF_EX_SSE41) ||
36 !IsProcessorFeaturePresent(PF_SSE4_1_INSTRUCTIONS_AVAILABLE))
37 return;
38
39 primitives_init_YUV_sse41_int(prims);
40}
41
42FREERDP_LOCAL void primitives_init_YUV_avx2_int(primitives_t* WINPR_RESTRICT prims);
43static inline void primitives_init_YUV_avx2(primitives_t* WINPR_RESTRICT prims)
44{
45#if defined(WITH_AVX2)
46 if (!IsProcessorFeaturePresent(PF_AVX2_INSTRUCTIONS_AVAILABLE))
47 return;
48
49 primitives_init_YUV_avx2_int(prims);
50#else
51 WINPR_UNUSED(prims);
52#endif
53}
54
55FREERDP_LOCAL void primitives_init_YUV_neon_int(primitives_t* WINPR_RESTRICT prims);
56static inline void primitives_init_YUV_neon(primitives_t* WINPR_RESTRICT prims)
57{
58 if (!IsProcessorFeaturePresent(PF_ARM_NEON_INSTRUCTIONS_AVAILABLE))
59 return;
60
61 primitives_init_YUV_neon_int(prims);
62}
63
64#endif