mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-21 09:14:47 +08:00
fix: set properly resource params when setAllocationType
gmm params: usage, cachable and resource info should be set properly when override allocation type Resolves: HSD-22020344331 Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
71c6731287
commit
2e0884a301
@@ -22,6 +22,22 @@
|
||||
#include "shared/source/memory_manager/definitions/storage_info.h"
|
||||
|
||||
namespace NEO {
|
||||
void Gmm::updateUsageAndCachableFlag(GMM_RESOURCE_USAGE_TYPE_ENUM gmmResourceUsage, const GmmRequirements &gmmRequirements) {
|
||||
resourceParams.Usage = gmmResourceUsage;
|
||||
this->preferNoCpuAccess = CacheSettingsHelper::preferNoCpuAccess(gmmResourceUsage, gmmHelper->getRootDeviceEnvironment());
|
||||
bool cacheable = !this->preferNoCpuAccess && !CacheSettingsHelper::isUncachedType(gmmResourceUsage);
|
||||
|
||||
gmmRequirements.overriderPreferNoCpuAccess.doOverride(this->preferNoCpuAccess);
|
||||
gmmRequirements.overriderCacheable.doOverride(cacheable);
|
||||
if (NEO::debugManager.flags.OverrideGmmCacheableField.get() != -1) {
|
||||
cacheable = !!NEO::debugManager.flags.OverrideGmmCacheableField.get();
|
||||
}
|
||||
resourceParams.Flags.Info.Cacheable = cacheable;
|
||||
}
|
||||
|
||||
void Gmm::applyResourceInfo() {
|
||||
gmmResourceInfo.reset(GmmResourceInfo::create(gmmHelper->getClientContext(), &resourceParams));
|
||||
}
|
||||
Gmm::Gmm(GmmHelper *gmmHelper, const void *alignedPtr, size_t alignedSize, size_t alignment, GMM_RESOURCE_USAGE_TYPE_ENUM gmmResourceUsage,
|
||||
const StorageInfo &storageInfo, const GmmRequirements &gmmRequirements) : gmmHelper(gmmHelper) {
|
||||
resourceParams.Type = RESOURCE_BUFFER;
|
||||
@@ -37,20 +53,9 @@ Gmm::Gmm(GmmHelper *gmmHelper, const void *alignedPtr, size_t alignedSize, size_
|
||||
}
|
||||
}
|
||||
|
||||
resourceParams.Usage = gmmResourceUsage;
|
||||
resourceParams.Flags.Info.Linear = 1;
|
||||
|
||||
this->preferNoCpuAccess = CacheSettingsHelper::preferNoCpuAccess(gmmResourceUsage, gmmHelper->getRootDeviceEnvironment());
|
||||
bool cacheable = !this->preferNoCpuAccess && !CacheSettingsHelper::isUncachedType(gmmResourceUsage);
|
||||
|
||||
gmmRequirements.overriderPreferNoCpuAccess.doOverride(this->preferNoCpuAccess);
|
||||
gmmRequirements.overriderCacheable.doOverride(cacheable);
|
||||
|
||||
if (NEO::debugManager.flags.OverrideGmmCacheableField.get() != -1) {
|
||||
cacheable = !!NEO::debugManager.flags.OverrideGmmCacheableField.get();
|
||||
}
|
||||
|
||||
resourceParams.Flags.Info.Cacheable = cacheable;
|
||||
updateUsageAndCachableFlag(gmmResourceUsage, gmmRequirements);
|
||||
|
||||
resourceParams.Flags.Gpu.Texture = 1;
|
||||
|
||||
@@ -71,7 +76,7 @@ Gmm::Gmm(GmmHelper *gmmHelper, const void *alignedPtr, size_t alignedSize, size_
|
||||
applyAppResource(storageInfo);
|
||||
applyDebugOverrides();
|
||||
|
||||
gmmResourceInfo.reset(GmmResourceInfo::create(gmmHelper->getClientContext(), &resourceParams));
|
||||
applyResourceInfo();
|
||||
}
|
||||
|
||||
Gmm::Gmm(GmmHelper *gmmHelper, GMM_RESOURCE_INFO *inputGmm) : Gmm(gmmHelper, inputGmm, false) {}
|
||||
|
||||
Reference in New Issue
Block a user