1 // 2 // Copyright 2019 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 #ifndef TEST_EXPECTATIONS_GPU_TEST_CONFIG_H_ 8 #define TEST_EXPECTATIONS_GPU_TEST_CONFIG_H_ 9 10 #include <common/bitset_utils.h> 11 12 namespace angle 13 { 14 15 struct GPUTestConfig 16 { 17 public: 18 enum API 19 { 20 kAPIUnknown = 0, 21 kAPID3D9, 22 kAPID3D11, 23 kAPIGLDesktop, 24 kAPIGLES, 25 kAPIVulkan, 26 kAPISwiftShader, 27 kAPIMetal, 28 }; 29 30 enum Condition 31 { 32 kConditionNone = 0, 33 kConditionWinXP, 34 kConditionWinVista, 35 kConditionWin7, 36 kConditionWin8, 37 kConditionWin10, 38 kConditionWin, 39 kConditionMacLeopard, 40 kConditionMacSnowLeopard, 41 kConditionMacLion, 42 kConditionMacMountainLion, 43 kConditionMacMavericks, 44 kConditionMacYosemite, 45 kConditionMacElCapitan, 46 kConditionMacSierra, 47 kConditionMacHighSierra, 48 kConditionMacMojave, 49 kConditionMac, 50 kConditionIOS, 51 kConditionLinux, 52 kConditionAndroid, 53 kConditionNVIDIA, 54 kConditionAMD, 55 kConditionIntel, 56 kConditionVMWare, 57 kConditionApple, 58 kConditionRelease, 59 kConditionDebug, 60 kConditionD3D9, 61 kConditionD3D11, 62 kConditionGLDesktop, 63 kConditionGLES, 64 kConditionVulkan, 65 kConditionMetal, 66 kConditionNexus5X, 67 kConditionPixel2OrXL, 68 kConditionPixel4OrXL, 69 kConditionPixel6, 70 kConditionPixel7, 71 kConditionFlipN2, 72 kConditionMaliG710, 73 kConditionGalaxyA23, 74 kConditionGalaxyA34, 75 kConditionGalaxyA54, 76 kConditionGalaxyS23, 77 kConditionGalaxyQualcomm, 78 kConditionFindX6, 79 kConditionNVIDIAQuadroP400, 80 kConditionNVIDIAGTX1660, 81 kConditionSwiftShader, 82 kConditionPreRotation, 83 kConditionPreRotation90, 84 kConditionPreRotation180, 85 kConditionPreRotation270, 86 kConditionNoSan, 87 kConditionASan, 88 kConditionTSan, 89 kConditionUBSan, 90 91 kNumberOfConditions, 92 }; 93 94 using ConditionArray = angle::BitSet<GPUTestConfig::kNumberOfConditions>; 95 96 GPUTestConfig(); 97 GPUTestConfig(bool isSwiftShader); 98 GPUTestConfig(const API &api, uint32_t preRotation); 99 100 const GPUTestConfig::ConditionArray &getConditions() const; 101 102 protected: 103 GPUTestConfig::ConditionArray mConditions; 104 }; 105 106 } // namespace angle 107 108 #endif // TEST_EXPECTATIONS_GPU_TEST_CONFIG_H_ 109