Files
compute-runtime/shared/source/os_interface/aub_memory_operations_handler.h
Lukasz Jobczyk ff0add74e3 Add alternative residency model on Linux
Related-To: NEO-4732

Change-Id: I79e165d2b647af200ca314e1183ecf05903de644
Signed-off-by: Lukasz Jobczyk <lukasz.jobczyk@intel.com>
2020-07-10 12:38:57 +02:00

38 lines
1.2 KiB
C++

/*
* Copyright (C) 2019-2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "shared/source/memory_manager/memory_operations_handler.h"
#include "shared/source/utilities/spinlock.h"
#include "third_party/aub_stream/headers/aub_manager.h"
#include <mutex>
#include <vector>
namespace NEO {
class AubMemoryOperationsHandler : public MemoryOperationsHandler {
public:
AubMemoryOperationsHandler(aub_stream::AubManager *aubManager);
~AubMemoryOperationsHandler() override = default;
MemoryOperationsStatus makeResident(Device *device, ArrayRef<GraphicsAllocation *> gfxAllocations) override;
MemoryOperationsStatus evict(Device *device, GraphicsAllocation &gfxAllocation) override;
MemoryOperationsStatus isResident(Device *device, GraphicsAllocation &gfxAllocation) override;
void setAubManager(aub_stream::AubManager *aubManager);
protected:
MOCKABLE_VIRTUAL std::unique_lock<SpinLock> acquireLock(SpinLock &lock) {
return std::unique_lock<SpinLock>{lock};
}
aub_stream::AubManager *aubManager = nullptr;
std::vector<GraphicsAllocation *> residentAllocations;
SpinLock resourcesLock;
};
} // namespace NEO