mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-01 04:23:00 +08:00
feature: Add debug flag for setting hw ip version
Signed-off-by: Daria Hinz <daria.hinz@intel.com> Related-To: NEO-7954
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
4ecff31c26
commit
331f167cfe
@@ -111,6 +111,7 @@ DECLARE_DEBUG_VARIABLE(int32_t, MultiStorageGranularity, -1, "Forces granularity
|
||||
DECLARE_DEBUG_VARIABLE(int32_t, LimitBlitterMaxWidth, -1, "-1: default, >=0: Max width")
|
||||
DECLARE_DEBUG_VARIABLE(int32_t, LimitBlitterMaxHeight, -1, "-1: default, >=0: Max height")
|
||||
DECLARE_DEBUG_VARIABLE(int32_t, PostBlitCommand, -1, "-1: default, 0: MI_ARB_CHECK, 1: MI_FLUSH, 2: Nothing")
|
||||
DECLARE_DEBUG_VARIABLE(int32_t, OverrideHwIpVersion, -1, "-1: default, >=0: Hardware IP version")
|
||||
DECLARE_DEBUG_VARIABLE(int32_t, OverridePreemptionSurfaceSizeInMb, -1, "-1: default, >=0 Override preemption surface size with value")
|
||||
DECLARE_DEBUG_VARIABLE(int32_t, OverrideLeastOccupiedBank, -1, "-1: default, >=0 Override least occupied bank with value")
|
||||
DECLARE_DEBUG_VARIABLE(int32_t, OverrideRevision, -1, "-1: default, >=0: Revision id")
|
||||
|
||||
@@ -30,7 +30,7 @@ TargetDevice getTargetDevice(const RootDeviceEnvironment &rootDeviceEnvironment)
|
||||
|
||||
targetDevice.coreFamily = hwInfo.platform.eRenderCoreFamily;
|
||||
targetDevice.productFamily = hwInfo.platform.eProductFamily;
|
||||
targetDevice.aotConfig.value = productHelper.getProductConfigFromHwInfo(hwInfo);
|
||||
targetDevice.aotConfig.value = productHelper.getHwIpVersion(hwInfo);
|
||||
targetDevice.stepping = hwInfo.platform.usRevId;
|
||||
targetDevice.maxPointerSizeInBytes = sizeof(uintptr_t);
|
||||
targetDevice.grfSize = hwInfo.capabilityTable.grfSize;
|
||||
|
||||
@@ -28,7 +28,7 @@ std::vector<DeviceAotInfo> &ProductConfigHelper::getDeviceAotInfo() {
|
||||
return deviceAotInfo;
|
||||
}
|
||||
|
||||
bool ProductConfigHelper::getDeviceAotInfoForProductConfig(AOT::PRODUCT_CONFIG config, DeviceAotInfo &out) const {
|
||||
bool ProductConfigHelper::getDeviceAotInfoForProductConfig(uint32_t config, DeviceAotInfo &out) const {
|
||||
auto ret = std::find_if(deviceAotInfo.begin(), deviceAotInfo.end(), findProductConfig(config));
|
||||
if (ret == deviceAotInfo.end()) {
|
||||
return false;
|
||||
|
||||
@@ -107,7 +107,7 @@ struct ProductConfigHelper {
|
||||
bool isSupportedFamily(uint32_t family) const;
|
||||
bool isSupportedRelease(uint32_t release) const;
|
||||
bool isSupportedProductConfig(uint32_t config) const;
|
||||
bool getDeviceAotInfoForProductConfig(AOT::PRODUCT_CONFIG config, DeviceAotInfo &out) const;
|
||||
bool getDeviceAotInfoForProductConfig(uint32_t config, DeviceAotInfo &out) const;
|
||||
|
||||
std::vector<DeviceAotInfo> &getDeviceAotInfo();
|
||||
std::vector<NEO::ConstStringRef> getRepresentativeProductAcronyms();
|
||||
|
||||
@@ -37,7 +37,11 @@ bool DeviceFactory::prepareDeviceEnvironmentsForProductFamilyOverride(ExecutionE
|
||||
auto configStr = productFamily;
|
||||
auto productConfigHelper = std::make_unique<ProductConfigHelper>();
|
||||
ProductConfigHelper::adjustDeviceName(configStr);
|
||||
auto productConfig = productConfigHelper->getProductConfigFromDeviceName(configStr);
|
||||
uint32_t productConfig = productConfigHelper->getProductConfigFromDeviceName(configStr);
|
||||
|
||||
if (DebugManager.flags.OverrideHwIpVersion.get() != -1 && productConfigHelper->isSupportedProductConfig(DebugManager.flags.OverrideHwIpVersion.get())) {
|
||||
productConfig = DebugManager.flags.OverrideHwIpVersion.get();
|
||||
}
|
||||
|
||||
const HardwareInfo *hwInfoConst = getDefaultHwInfo();
|
||||
DeviceAotInfo aotInfo{};
|
||||
@@ -72,7 +76,6 @@ bool DeviceFactory::prepareDeviceEnvironmentsForProductFamilyOverride(ExecutionE
|
||||
}
|
||||
|
||||
setHwInfoValuesFromConfig(hwInfoConfig, *hardwareInfo);
|
||||
|
||||
hardwareInfoSetup[hwInfoConst->platform.eProductFamily](hardwareInfo, true, hwInfoConfig, compilerProductHelper);
|
||||
|
||||
auto &productHelper = rootDeviceEnvironment.getProductHelper();
|
||||
@@ -80,7 +83,13 @@ bool DeviceFactory::prepareDeviceEnvironmentsForProductFamilyOverride(ExecutionE
|
||||
|
||||
if (productConfigFound) {
|
||||
compilerProductHelper.setProductConfigForHwInfo(*hardwareInfo, aotInfo.aotConfig);
|
||||
hardwareInfo->platform.usDeviceID = aotInfo.deviceIds->front();
|
||||
if (DebugManager.flags.ForceDeviceId.get() == "unk") {
|
||||
hardwareInfo->platform.usDeviceID = aotInfo.deviceIds->front();
|
||||
}
|
||||
}
|
||||
|
||||
if (DebugManager.flags.OverrideHwIpVersion.get() != -1) {
|
||||
hardwareInfo->ipVersion = DebugManager.flags.OverrideHwIpVersion.get();
|
||||
}
|
||||
|
||||
if (DebugManager.flags.OverrideGpuAddressSpace.get() != -1) {
|
||||
|
||||
@@ -59,7 +59,7 @@ void IoctlHelper::setupIpVersion() {
|
||||
auto &rootDeviceEnvironment = drm.getRootDeviceEnvironment();
|
||||
auto &hwInfo = *rootDeviceEnvironment.getMutableHardwareInfo();
|
||||
auto &productHelper = rootDeviceEnvironment.getHelper<ProductHelper>();
|
||||
hwInfo.ipVersion.value = productHelper.getProductConfigFromHwInfo(hwInfo);
|
||||
hwInfo.ipVersion.value = productHelper.getHwIpVersion(hwInfo);
|
||||
}
|
||||
|
||||
void IoctlHelper::logExecObject(const ExecObject &execObject, std::stringstream &logger, size_t size) {
|
||||
|
||||
@@ -90,7 +90,7 @@ class ProductHelper {
|
||||
virtual bool obtainBlitterPreference(const HardwareInfo &hwInfo) const = 0;
|
||||
virtual bool isBlitterFullySupported(const HardwareInfo &hwInfo) const = 0;
|
||||
virtual bool isPageTableManagerSupported(const HardwareInfo &hwInfo) const = 0;
|
||||
virtual uint32_t getProductConfigFromHwInfo(const HardwareInfo &hwInfo) const = 0;
|
||||
virtual uint32_t getHwIpVersion(const HardwareInfo &hwInfo) const = 0;
|
||||
virtual uint32_t getHwRevIdFromStepping(uint32_t stepping, const HardwareInfo &hwInfo) const = 0;
|
||||
virtual uint32_t getSteppingFromHwRevId(const HardwareInfo &hwInfo) const = 0;
|
||||
virtual uint32_t getAubStreamSteppingFromHwRevId(const HardwareInfo &hwInfo) const = 0;
|
||||
@@ -214,5 +214,6 @@ class ProductHelper {
|
||||
|
||||
virtual LocalMemoryAccessMode getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const = 0;
|
||||
virtual void fillScmPropertiesSupportStructureBase(StateComputeModePropertiesSupport &propertiesSupport) const = 0;
|
||||
virtual uint32_t getProductConfigFromHwInfo(const HardwareInfo &hwInfo) const = 0;
|
||||
};
|
||||
} // namespace NEO
|
||||
|
||||
@@ -212,6 +212,14 @@ uint32_t ProductHelperHw<gfxProduct>::getSteppingFromHwRevId(const HardwareInfo
|
||||
return CommonConstants::invalidStepping;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
uint32_t ProductHelperHw<gfxProduct>::getHwIpVersion(const HardwareInfo &hwInfo) const {
|
||||
if (DebugManager.flags.OverrideHwIpVersion.get() != -1) {
|
||||
return DebugManager.flags.OverrideHwIpVersion.get();
|
||||
}
|
||||
return getProductConfigFromHwInfo(hwInfo);
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
uint32_t ProductHelperHw<gfxProduct>::getAubStreamSteppingFromHwRevId(const HardwareInfo &hwInfo) const {
|
||||
switch (getSteppingFromHwRevId(hwInfo)) {
|
||||
|
||||
@@ -44,8 +44,8 @@ class ProductHelperHw : public ProductHelper {
|
||||
bool isBlitterFullySupported(const HardwareInfo &hwInfo) const override;
|
||||
bool isPageTableManagerSupported(const HardwareInfo &hwInfo) const override;
|
||||
bool overrideGfxPartitionLayoutForWsl() const override;
|
||||
uint32_t getHwIpVersion(const HardwareInfo &hwInfo) const override;
|
||||
uint32_t getHwRevIdFromStepping(uint32_t stepping, const HardwareInfo &hwInfo) const override;
|
||||
uint32_t getProductConfigFromHwInfo(const HardwareInfo &hwInfo) const override;
|
||||
uint32_t getSteppingFromHwRevId(const HardwareInfo &hwInfo) const override;
|
||||
uint32_t getAubStreamSteppingFromHwRevId(const HardwareInfo &hwInfo) const override;
|
||||
std::optional<aub_stream::ProductFamily> getAubStreamProductFamily() const override;
|
||||
@@ -168,6 +168,7 @@ class ProductHelperHw : public ProductHelper {
|
||||
void enableCompression(HardwareInfo *hwInfo) const;
|
||||
void enableBlitterOperationsSupport(HardwareInfo *hwInfo) const;
|
||||
bool getConcurrentAccessMemCapabilitiesSupported(UsmAccessCapabilities capability) const;
|
||||
uint32_t getProductConfigFromHwInfo(const HardwareInfo &hwInfo) const override;
|
||||
uint64_t getHostMemCapabilitiesValue() const;
|
||||
bool getHostMemCapabilitiesSupported(const HardwareInfo *hwInfo) const;
|
||||
LocalMemoryAccessMode getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const override;
|
||||
|
||||
@@ -16,6 +16,6 @@ void Wddm::populateAdditionalAdapterInfoOptions(const ADAPTER_INFO_KMD &adapterI
|
||||
}
|
||||
void Wddm::populateIpVersion(HardwareInfo &hwInfo) {
|
||||
auto &productHelper = rootDeviceEnvironment.getHelper<ProductHelper>();
|
||||
hwInfo.ipVersion.value = productHelper.getProductConfigFromHwInfo(hwInfo);
|
||||
hwInfo.ipVersion.value = productHelper.getHwIpVersion(hwInfo);
|
||||
}
|
||||
} // namespace NEO
|
||||
|
||||
@@ -143,7 +143,7 @@ void ProductHelperHw<gfxProduct>::adjustIpVersionIfNeeded(HardwareInfo &hwInfo)
|
||||
bool isIpVersionUninitialized = hwInfo.ipVersion.architecture == 0;
|
||||
|
||||
if (isIpVersionUninitialized) {
|
||||
hwInfo.ipVersion.value = getProductConfigFromHwInfo(hwInfo);
|
||||
hwInfo.ipVersion.value = getHwIpVersion(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user