1 // 2 // Copyright (c) 2017 The Khronos Group Inc. 3 // 4 // Licensed under the Apache License, Version 2.0 (the "License"); 5 // you may not use this file except in compliance with the License. 6 // You may obtain a copy of the License at 7 // 8 // http://www.apache.org/licenses/LICENSE-2.0 9 // 10 // Unless required by applicable law or agreed to in writing, software 11 // distributed under the License is distributed on an "AS IS" BASIS, 12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 // 16 #ifndef _parseParameters_h 17 #define _parseParameters_h 18 19 #include "compat.h" 20 #include <string> 21 22 enum CompilationMode 23 { 24 kOnline = 0, 25 kBinary, 26 kSpir_v 27 }; 28 29 enum CompilationCacheMode 30 { 31 kCacheModeCompileIfAbsent = 0, 32 kCacheModeForceRead, 33 kCacheModeOverwrite, 34 kCacheModeDumpCl 35 }; 36 37 extern CompilationMode gCompilationMode; 38 extern CompilationCacheMode gCompilationCacheMode; 39 extern std::string gCompilationCachePath; 40 extern std::string gCompilationProgram; 41 extern bool gDisableSPIRVValidation; 42 extern std::string gSPIRVValidator; 43 44 extern int parseCustomParam(int argc, const char *argv[], 45 const char *ignore = 0); 46 47 extern void parseWimpyReductionFactor(const char *&arg, 48 int &wimpyReductionFactor); 49 50 #endif // _parseParameters_h 51