Use common definition of UUID for Intel GPUs

This patch will eventaully allow matching UUIDs queried
from NEO with UUIDs queried from other GPU APIs implementations
for Intel GPUs

Signed-off-by: Kamil Diedrich <kamil.diedrich@intel.com>
This commit is contained in:
Kamil Diedrich
2023-01-05 15:01:17 +01:00
committed by Compute-Runtime-Automation
parent 200734892b
commit ad579be87c
8 changed files with 166 additions and 29 deletions

View File

@@ -295,7 +295,9 @@ cl_int ClDevice::getDeviceInfo(cl_device_info paramName,
}
break;
case CL_DEVICE_UUID_KHR:
device.generateUuid(uuid);
if (device.getUuid(uuid) == false) {
device.generateUuid(uuid);
}
src = uuid.data();
retSize = srcSize = CL_UUID_SIZE_KHR;
break;

View File

@@ -1055,6 +1055,19 @@ TEST(GetDeviceInfo, givenDeviceUuidWhenGettingDeviceInfoThenGenerateDeviceUuid)
EXPECT_EQ(generateDeviceUuid, deviceUuidKHR);
}
TEST(GetDeviceInfo, givenDeviceUuidWhenGettingDeviceInfoThenGenerateDeviceUuidFromPci) {
std::array<uint8_t, CL_UUID_SIZE_KHR> generateDeviceUuid, deviceUuidKHR;
size_t retSize = 0;
memset(generateDeviceUuid.data(), 1, CL_UUID_SIZE_KHR);
auto device = std::make_unique<MockClDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(nullptr));
device->setPciUuid(generateDeviceUuid);
auto retVal = device->getDeviceInfo(CL_DEVICE_UUID_KHR, sizeof(deviceUuidKHR), &deviceUuidKHR, &retSize);
ASSERT_EQ(retVal, CL_SUCCESS);
EXPECT_EQ(generateDeviceUuid, deviceUuidKHR);
}
struct DeviceAttributeQueryTest : public ::testing::TestWithParam<uint32_t /*cl_device_info*/> {
void SetUp() override {
param = GetParam();

View File

@@ -39,3 +39,8 @@ ExecutionEnvironment *MockClDevice::prepareExecutionEnvironment(const HardwareIn
bool MockClDevice::areOcl21FeaturesSupported() const {
return device.getHardwareInfo().capabilityTable.supportsOcl21Features;
}
void MockClDevice::setPciUuid(std::array<uint8_t, ProductHelper::uuidSize> &id) {
memcpy_s(device.uuid.id.data(), ProductHelper::uuidSize, id.data(), ProductHelper::uuidSize);
device.uuid.isValid = true;
}

View File

@@ -43,6 +43,7 @@ class MockClDevice : public ClDevice {
explicit MockClDevice(MockDevice *pMockDevice);
void setPciUuid(std::array<uint8_t, ProductHelper::uuidSize> &id);
bool createEngines() { return device.createEngines(); }
void setOSTime(OSTime *osTime) { device.setOSTime(osTime); }
bool getCpuTime(uint64_t *timeStamp) { return device.getCpuTime(timeStamp); }