[PVC] Remove tlb flush

Related-To: NEO-7116

Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
This commit is contained in:
Lukasz Jobczyk
2023-01-11 13:07:52 +00:00
committed by Compute-Runtime-Automation
parent d24f403cc4
commit 181d2021ed
9 changed files with 32 additions and 8 deletions

View File

@@ -151,6 +151,7 @@ class ProductHelper {
virtual bool isMidThreadPreemptionDisallowedForRayTracingKernels() const = 0;
virtual bool isBufferPoolAllocatorSupported() const = 0;
virtual uint64_t overridePatIndex(AllocationType allocationType, uint64_t patIndex) const = 0;
virtual bool isTlbFlushRequired() const = 0;
virtual bool getFrontEndPropertyScratchSizeSupport() const = 0;
virtual bool getFrontEndPropertyPrivateScratchSizeSupport() const = 0;
virtual bool getFrontEndPropertyComputeDispatchAllWalkerSupport() const = 0;
@@ -295,7 +296,7 @@ class ProductHelperHw : public ProductHelper {
bool isMidThreadPreemptionDisallowedForRayTracingKernels() const override;
bool isBufferPoolAllocatorSupported() const override;
uint64_t overridePatIndex(AllocationType allocationType, uint64_t patIndex) const override;
bool isTlbFlushRequired() const override;
bool getFrontEndPropertyScratchSizeSupport() const override;
bool getFrontEndPropertyPrivateScratchSizeSupport() const override;
bool getFrontEndPropertyComputeDispatchAllWalkerSupport() const override;

View File

@@ -50,6 +50,11 @@ void ProductHelperHw<gfxProduct>::adjustPlatformForProductFamily(HardwareInfo *h
template <PRODUCT_FAMILY gfxProduct>
void ProductHelperHw<gfxProduct>::adjustSamplerState(void *sampler, const HardwareInfo &hwInfo) const {}
template <PRODUCT_FAMILY gfxProduct>
bool ProductHelperHw<gfxProduct>::isTlbFlushRequired() const {
return true;
}
template <PRODUCT_FAMILY gfxProduct>
void ProductHelperHw<gfxProduct>::enableBlitterOperationsSupport(HardwareInfo *hwInfo) const {
hwInfo->capabilityTable.blitterOperationsSupported = obtainBlitterPreference(*hwInfo);

View File

@@ -655,6 +655,9 @@ uint32_t Drm::getVirtualMemoryAddressSpace(uint32_t vmId) const {
}
void Drm::setNewResourceBoundToVM(uint32_t vmHandleId) {
if (!this->rootDeviceEnvironment.getProductHelper().isTlbFlushRequired()) {
return;
}
const auto &engines = this->rootDeviceEnvironment.executionEnvironment.memoryManager->getRegisteredEngines();
for (const auto &engine : engines) {
if (engine.osContext->getDeviceBitfield().test(vmHandleId)) {