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 kAPIWgpu, 29 }; 30 31 enum Condition 32 { 33 kConditionNone = 0, 34 kConditionWinXP, 35 kConditionWinVista, 36 kConditionWin7, 37 kConditionWin8, 38 kConditionWin10, 39 kConditionWin, 40 kConditionMacLeopard, 41 kConditionMacSnowLeopard, 42 kConditionMacLion, 43 kConditionMacMountainLion, 44 kConditionMacMavericks, 45 kConditionMacYosemite, 46 kConditionMacElCapitan, 47 kConditionMacSierra, 48 kConditionMacHighSierra, 49 kConditionMacMojave, 50 kConditionMac, 51 kConditionIOS, 52 kConditionLinux, 53 kConditionAndroid, 54 kConditionNVIDIA, 55 kConditionAMD, 56 kConditionIntel, 57 kConditionVMWare, 58 kConditionApple, 59 kConditionRelease, 60 kConditionDebug, 61 kConditionD3D9, 62 kConditionD3D11, 63 kConditionGLDesktop, 64 kConditionGLES, 65 kConditionVulkan, 66 kConditionMetal, 67 kConditionWgpu, 68 kConditionNexus5X, 69 kConditionPixel2OrXL, 70 kConditionPixel4OrXL, 71 kConditionPixel6, 72 kConditionPixel7, 73 kConditionFlipN2, 74 kConditionMaliG710, 75 kConditionGalaxyA23, 76 kConditionGalaxyA34, 77 kConditionGalaxyA54, 78 kConditionGalaxyS22, 79 kConditionGalaxyS23, 80 kConditionGalaxyS24, 81 kConditionGalaxyQualcomm, 82 kConditionFindX6, 83 kConditionNVIDIAQuadroP400, 84 kConditionNVIDIAGTX1660, 85 kConditionPineapple, 86 kConditionSwiftShader, 87 kConditionPreRotation, 88 kConditionPreRotation90, 89 kConditionPreRotation180, 90 kConditionPreRotation270, 91 kConditionNoSan, 92 kConditionASan, 93 kConditionTSan, 94 kConditionUBSan, 95 96 kNumberOfConditions, 97 }; 98 99 using ConditionArray = angle::BitSet<GPUTestConfig::kNumberOfConditions>; 100 101 GPUTestConfig(); 102 GPUTestConfig(bool isSwiftShader); 103 GPUTestConfig(const API &api, uint32_t preRotation); 104 105 const GPUTestConfig::ConditionArray &getConditions() const; 106 107 protected: 108 GPUTestConfig::ConditionArray mConditions; 109 }; 110 111 } // namespace angle 112 113 #endif // TEST_EXPECTATIONS_GPU_TEST_CONFIG_H_ 114