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