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