1 /*
2  * Copyright (C) 2018-2021 Intel Corporation
3  *
4  * SPDX-License-Identifier: MIT
5  *
6  */
7 
8 #pragma once
9 
10 #include "shared/source/utilities/stackvec.h"
11 
12 #include "CL/cl.h"
13 
14 #include <string>
15 
16 using OpenClCFeaturesContainer = StackVec<cl_name_version, 15>;
17 
18 namespace NEO {
19 struct HardwareInfo;
20 
21 namespace Extensions {
22 constexpr const char *const sharingFormatQuery = "cl_intel_sharing_format_query ";
23 }
24 extern const char *deviceExtensionsList;
25 
26 std::string getExtensionsList(const HardwareInfo &hwInfo);
27 void getOpenclCFeaturesList(const HardwareInfo &hwInfo, OpenClCFeaturesContainer &openclCFeatures);
28 std::string convertEnabledExtensionsToCompilerInternalOptions(const char *deviceExtensions,
29                                                               OpenClCFeaturesContainer &openclCFeatures);
30 std::string getOclVersionCompilerInternalOption(unsigned int oclVersion);
31 
32 } // namespace NEO
33