feature: Add logic to disable bindless addressing via AIL

Add mockable Device functions to get ReleaseHelper and AILConfiguration.

Resolves: NEO-12699

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski
2024-09-18 12:38:06 +00:00
committed by Compute-Runtime-Automation
parent 9a44ac6779
commit ebc19b4a70
21 changed files with 103 additions and 28 deletions

View File

@@ -41,6 +41,7 @@ enum class AILEnumeration : uint32_t {
enableLegacyPlatformName,
disableDirectSubmission,
handleDivergentBarriers,
disableBindlessAddressing,
};
class AILConfiguration;
@@ -77,6 +78,8 @@ class AILConfiguration {
virtual bool handleDivergentBarriers() = 0;
virtual bool disableBindlessAddressing() = 0;
protected:
virtual void applyExt(RuntimeCapabilityTable &runtimeCapabilityTable) = 0;
std::string processName;
@@ -84,6 +87,7 @@ class AILConfiguration {
bool sourcesContain(const std::string &sources, std::string_view contentToFind) const;
MOCKABLE_VIRTUAL bool isKernelHashCorrect(const std::string &kernelSources, uint64_t expectedHash) const;
virtual void setHandleDivergentBarriers(bool val) = 0;
virtual void setDisableBindlessAddressing(bool val) = 0;
};
extern const std::set<std::string_view> applicationsContextSyncFlag;
@@ -106,12 +110,15 @@ class AILConfigurationHw : public AILConfiguration {
bool useLegacyValidationLogic() override;
bool forceRcs() override;
bool handleDivergentBarriers() override;
bool disableBindlessAddressing() override;
bool shouldForceRcs = false;
bool shouldHandleDivergentBarriers = false;
bool shouldDisableBindlessAddressing = false;
protected:
void setHandleDivergentBarriers(bool val) override;
void setDisableBindlessAddressing(bool val) override;
};
template <PRODUCT_FAMILY product>

View File

@@ -44,8 +44,16 @@ inline bool AILConfigurationHw<product>::handleDivergentBarriers() {
return shouldHandleDivergentBarriers;
}
template <PRODUCT_FAMILY product>
inline bool AILConfigurationHw<product>::disableBindlessAddressing() {
return shouldDisableBindlessAddressing;
}
template <PRODUCT_FAMILY product>
inline void AILConfigurationHw<product>::setHandleDivergentBarriers(bool val) {
shouldHandleDivergentBarriers = val;
}
template <PRODUCT_FAMILY product>
inline void AILConfigurationHw<product>::setDisableBindlessAddressing(bool val) {
shouldDisableBindlessAddressing = val;
}
} // namespace NEO