mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Add cl_khr_pci_bus_info extension
Signed-off-by: Egor Suldin <egor.suldin@intel.com> https://github.com/intel/compute-runtime/pull/374
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
c94ad034d9
commit
2b3b47b495
@ -263,4 +263,9 @@ void ClDevice::getQueueFamilyName(char *outputName, size_t maxOutputNameLength,
|
||||
Platform *ClDevice::getPlatform() const {
|
||||
return castToObject<Platform>(platformId);
|
||||
}
|
||||
bool ClDevice::isPciBusInfoValid() const {
|
||||
return deviceInfo.pciBusInfo.pci_domain != PhysicalDevicePciBusInfo::InvalidValue && deviceInfo.pciBusInfo.pci_bus != PhysicalDevicePciBusInfo::InvalidValue &&
|
||||
deviceInfo.pciBusInfo.pci_device != PhysicalDevicePciBusInfo::InvalidValue && deviceInfo.pciBusInfo.pci_function != PhysicalDevicePciBusInfo::InvalidValue;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
@ -121,6 +121,7 @@ class ClDevice : public BaseObject<_cl_device_id> {
|
||||
DeviceBitfield getDeviceBitfield() const;
|
||||
bool isDeviceEnqueueSupported() const;
|
||||
bool arePipesSupported() const;
|
||||
bool isPciBusInfoValid() const;
|
||||
|
||||
static cl_command_queue_capabilities_intel getQueueFamilyCapabilitiesAll();
|
||||
MOCKABLE_VIRTUAL cl_command_queue_capabilities_intel getQueueFamilyCapabilities(EngineGroupType type);
|
||||
|
@ -202,6 +202,21 @@ void ClDevice::initializeCaps() {
|
||||
deviceExtensions += sharingFactory.getExtensions(driverInfo.get());
|
||||
}
|
||||
|
||||
PhysicalDevicePciBusInfo pciBusInfo(PhysicalDevicePciBusInfo::InvalidValue, PhysicalDevicePciBusInfo::InvalidValue, PhysicalDevicePciBusInfo::InvalidValue, PhysicalDevicePciBusInfo::InvalidValue);
|
||||
|
||||
if (driverInfo) {
|
||||
pciBusInfo = driverInfo->getPciBusInfo();
|
||||
}
|
||||
|
||||
deviceInfo.pciBusInfo.pci_domain = pciBusInfo.pciDomain;
|
||||
deviceInfo.pciBusInfo.pci_bus = pciBusInfo.pciBus;
|
||||
deviceInfo.pciBusInfo.pci_device = pciBusInfo.pciDevice;
|
||||
deviceInfo.pciBusInfo.pci_function = pciBusInfo.pciFunction;
|
||||
|
||||
if (isPciBusInfoValid()) {
|
||||
deviceExtensions += "cl_khr_pci_bus_info ";
|
||||
}
|
||||
|
||||
deviceExtensions += hwHelper.getExtensions();
|
||||
deviceInfo.deviceExtensions = deviceExtensions.c_str();
|
||||
|
||||
|
@ -286,6 +286,12 @@ cl_int ClDevice::getDeviceInfo(cl_device_info paramName,
|
||||
retSize = srcSize = sizeof(cl_device_feature_capabilities_intel);
|
||||
break;
|
||||
}
|
||||
case CL_DEVICE_PCI_BUS_INFO_KHR:
|
||||
if (isPciBusInfoValid()) {
|
||||
src = &deviceInfo.pciBusInfo;
|
||||
retSize = srcSize = sizeof(deviceInfo.pciBusInfo);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (getDeviceInfoForImage(paramName, src, srcSize, retSize) && !getSharedDeviceInfo().imageSupport) {
|
||||
src = &value;
|
||||
|
@ -129,6 +129,7 @@ struct ClDeviceInfo {
|
||||
cl_uint internalDriverVersion;
|
||||
cl_uint grfSize;
|
||||
bool preemptionSupported;
|
||||
cl_device_pci_bus_info_khr pciBusInfo;
|
||||
/* Extensions supported */
|
||||
bool nv12Extension;
|
||||
bool vmeExtension;
|
||||
|
Reference in New Issue
Block a user