mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-29 09:03:14 +08:00
Update OpenCL C features reporting to the compiler
Pass features also with -cl-ext option. Change-Id: I1a1c68b655a2108be51c7d57be771591ee0b14e7 Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
746cf7fd33
commit
60430d79ee
@@ -73,7 +73,7 @@ std::string getExtensionsList(const HardwareInfo &hwInfo) {
|
||||
return allExtensionsList;
|
||||
}
|
||||
|
||||
void getOpenclCFeaturesList(const HardwareInfo &hwInfo, StackVec<cl_name_version, 15> &openclCFeatures) {
|
||||
void getOpenclCFeaturesList(const HardwareInfo &hwInfo, OpenClCFeaturesContainer &openclCFeatures) {
|
||||
cl_name_version openClCFeature;
|
||||
openClCFeature.version = CL_MAKE_VERSION(3, 0, 0);
|
||||
|
||||
@@ -139,29 +139,31 @@ void getOpenclCFeaturesList(const HardwareInfo &hwInfo, StackVec<cl_name_version
|
||||
}
|
||||
}
|
||||
|
||||
std::string removeLastSpace(std::string &processedString) {
|
||||
if (processedString.size() > 0) {
|
||||
if (*processedString.rbegin() == ' ') {
|
||||
processedString.pop_back();
|
||||
}
|
||||
}
|
||||
return processedString;
|
||||
}
|
||||
std::string convertEnabledExtensionsToCompilerInternalOptions(const char *enabledExtensions,
|
||||
OpenClCFeaturesContainer &openclCFeatures) {
|
||||
|
||||
std::string convertEnabledExtensionsToCompilerInternalOptions(const char *enabledExtensions) {
|
||||
std::string extensionsList = enabledExtensions;
|
||||
extensionsList.reserve(1000);
|
||||
removeLastSpace(extensionsList);
|
||||
std::string::size_type pos = 0;
|
||||
while ((pos = extensionsList.find(" ", pos)) != std::string::npos) {
|
||||
extensionsList.replace(pos, 1, ",+");
|
||||
extensionsList.reserve(1500);
|
||||
extensionsList = " -cl-ext=-all,";
|
||||
std::istringstream extensionsStringStream(enabledExtensions);
|
||||
std::string extension;
|
||||
while (extensionsStringStream >> extension) {
|
||||
extensionsList.append("+");
|
||||
extensionsList.append(extension);
|
||||
extensionsList.append(",");
|
||||
}
|
||||
extensionsList = " -cl-ext=-all,+" + extensionsList + ",+cl_khr_3d_image_writes ";
|
||||
extensionsList.append("+cl_khr_3d_image_writes,");
|
||||
for (auto &feature : openclCFeatures) {
|
||||
extensionsList.append("+");
|
||||
extensionsList.append(feature.name);
|
||||
extensionsList.append(",");
|
||||
}
|
||||
extensionsList[extensionsList.size() - 1] = ' ';
|
||||
|
||||
return extensionsList;
|
||||
}
|
||||
|
||||
std::string convertEnabledOclCFeaturesToCompilerInternalOptions(StackVec<cl_name_version, 15> &openclCFeatures) {
|
||||
std::string convertEnabledOclCFeaturesToCompilerInternalOptions(OpenClCFeaturesContainer &openclCFeatures) {
|
||||
UNRECOVERABLE_IF(openclCFeatures.empty());
|
||||
std::string featuresList;
|
||||
featuresList.reserve(500);
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "shared/source/helpers/hw_info.h"
|
||||
#include "shared/source/utilities/stackvec.h"
|
||||
|
||||
#include "CL/cl.h"
|
||||
#include "opencl/source/cl_device/cl_device_info.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
@@ -21,9 +21,9 @@ constexpr const char *const sharingFormatQuery = "cl_intel_sharing_format_query
|
||||
extern const char *deviceExtensionsList;
|
||||
|
||||
std::string getExtensionsList(const HardwareInfo &hwInfo);
|
||||
void getOpenclCFeaturesList(const HardwareInfo &hwInfo, StackVec<cl_name_version, 15> &openclCFeatures);
|
||||
std::string removeLastSpace(std::string &s);
|
||||
std::string convertEnabledExtensionsToCompilerInternalOptions(const char *deviceExtensions);
|
||||
std::string convertEnabledOclCFeaturesToCompilerInternalOptions(StackVec<cl_name_version, 15> &openclCFeatures);
|
||||
void getOpenclCFeaturesList(const HardwareInfo &hwInfo, OpenClCFeaturesContainer &openclCFeatures);
|
||||
std::string convertEnabledExtensionsToCompilerInternalOptions(const char *deviceExtensions,
|
||||
OpenClCFeaturesContainer &openclCFeatures);
|
||||
std::string convertEnabledOclCFeaturesToCompilerInternalOptions(OpenClCFeaturesContainer &openclCFeatures);
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
Reference in New Issue
Block a user