-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathBc7Mode.h
35 lines (27 loc) · 992 Bytes
/
Bc7Mode.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//#define OPTION_AVX512
#define OPTION_AVX2
//#define OPTION_FMA
//#define OPTION_PCA
//#define OPTION_COUNTERS
//#define OPTION_SLOWPOKE
#define OPTION_SELFCHECK
//enum { kDenoise = 0, kDenoiseStep = 0 };
//enum { kDenoise = 0, kDenoiseStep = 3 * 3 };
//enum { kDenoise = 1, kDenoiseStep = 0 };
enum { kDenoise = 1, kDenoiseStep = 3 * 3 };
enum { kDenoiseShift = kDenoise ? kDenoise : 1 };
constexpr int kWeightLimit = 1000;
extern int gWeightAlpha, gWeightGreen, gWeightRed, gWeightBlue;
extern int gWeightColor, gWeightColorAlpha;
#if defined(OPTION_AVX512) && (!defined(__AVX512F__) || !defined(__AVX512BW__) || !defined(__AVX512VL__) || defined(OPTION_SLOWPOKE))
#error AVX-512 is required
#endif
#if defined(OPTION_AVX512) && !defined(OPTION_AVX2)
#define OPTION_AVX2
#endif
#if defined(OPTION_AVX2) && (!defined(__AVX2__) || defined(OPTION_SLOWPOKE))
#error AVX2 is required
#endif
#if defined(OPTION_AVX2) && !defined(OPTION_FMA) // Except Via Cores
#define OPTION_FMA
#endif