1 /*========================== begin_copyright_notice ============================ 2 3 Copyright (C) 2021 Intel Corporation 4 5 SPDX-License-Identifier: MIT 6 7 ============================= end_copyright_notice ===========================*/ 8 9 #ifndef VC_SUPPORT_SHADEROVERRIDE_H 10 #define VC_SUPPORT_SHADEROVERRIDE_H 11 12 #include <memory> 13 14 namespace llvm { 15 class StringRef; 16 } // namespace llvm 17 18 namespace vc { 19 20 class ShaderOverrider { 21 public: 22 enum class Extensions { VISAASM, ASM, DAT, LL }; 23 24 virtual bool override(void *&GenXBin, int &GenXBinSize, 25 llvm::StringRef FunctionName, Extensions Ext) const = 0; 26 27 virtual ~ShaderOverrider() = default; 28 }; 29 30 std::unique_ptr<ShaderOverrider> createDefaultshaderOverrider(); 31 32 } // namespace vc 33 34 #endif 35