mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-24 12:23:05 +08:00
fix: handle not aligned gtt size reported by i915
when i915 reports gtt size between 47 and 48 bits we consider it as 48 bit VA space Related-To: GSD-8215 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
e435a5cac4
commit
dae901c13f
@@ -238,7 +238,7 @@ int Drm::queryGttSize(uint64_t >tSizeOutput) {
|
||||
|
||||
int ret = ioctlHelper->ioctl(DrmIoctl::gemContextGetparam, &contextParam);
|
||||
if (ret == 0) {
|
||||
gttSizeOutput = contextParam.value;
|
||||
gttSizeOutput = Drm::alignUpGttSize(contextParam.value);
|
||||
}
|
||||
|
||||
return ret;
|
||||
@@ -1579,6 +1579,17 @@ void Drm::waitOnUserFences(const OsContextLinux &osContext, uint64_t address, ui
|
||||
}
|
||||
const HardwareInfo *Drm::getHardwareInfo() const { return rootDeviceEnvironment.getHardwareInfo(); }
|
||||
|
||||
uint64_t Drm::alignUpGttSize(uint64_t inputGttSize) {
|
||||
|
||||
constexpr uint64_t gttSize47bit = (1ull << 47) - 1;
|
||||
constexpr uint64_t gttSize48bit = (1ull << 48) - 1;
|
||||
|
||||
if (inputGttSize > gttSize47bit && inputGttSize < gttSize48bit) {
|
||||
return gttSize48bit;
|
||||
}
|
||||
return inputGttSize;
|
||||
}
|
||||
|
||||
template std::vector<uint16_t> Drm::query<uint16_t>(uint32_t queryId, uint32_t queryItemFlags);
|
||||
template std::vector<uint32_t> Drm::query<uint32_t>(uint32_t queryId, uint32_t queryItemFlags);
|
||||
template std::vector<uint64_t> Drm::query<uint64_t>(uint32_t queryId, uint32_t queryItemFlags);
|
||||
|
||||
Reference in New Issue
Block a user