Added OclDevice and partially autoconfig.

This commit is contained in:
XMRig 2019-08-22 22:39:36 +07:00
parent 166a68244e
commit ed7216575c
16 changed files with 697 additions and 100 deletions

View file

@ -84,6 +84,31 @@ rapidjson::Value xmrig::OclPlatform::toJSON(rapidjson::Document &doc) const
}
std::vector<xmrig::OclDevice> xmrig::OclPlatform::devices() const
{
std::vector<OclDevice> out;
if (!isValid()) {
return out;
}
cl_uint num_devices = 0;
OclLib::getDeviceIDs(id(), CL_DEVICE_TYPE_GPU, 0, nullptr, &num_devices);
if (num_devices == 0) {
return out;
}
out.reserve(num_devices);
std::vector<cl_device_id> devices(num_devices);
OclLib::getDeviceIDs(id(), CL_DEVICE_TYPE_GPU, num_devices, devices.data(), nullptr);
for (size_t i = 0; i < devices.size(); ++i) {
out.emplace_back(i, devices[i], id());
}
return out;
}
xmrig::String xmrig::OclPlatform::extensions() const
{
return OclLib::getPlatformInfo(id(), CL_PLATFORM_EXTENSIONS);