mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-24 21:18:24 +08:00
Add ioctl helper function to check vm bind availability
Related-To: NEO-6591 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
964596e514
commit
12e2670b9a
@@ -67,6 +67,7 @@ class IoctlHelper {
|
||||
virtual std::string getIoctlParamString(int param);
|
||||
virtual IoctlHelper *clone() = 0;
|
||||
|
||||
virtual bool isVmBindAvailable(Drm *drm) = 0;
|
||||
virtual uint32_t createGemExt(Drm *drm, const MemRegionsVec &memClassInstances, size_t allocSize, uint32_t &handle) = 0;
|
||||
virtual std::vector<MemoryRegion> translateToMemoryRegions(const std::vector<uint8_t> ®ionInfo) = 0;
|
||||
virtual CacheRegion closAlloc(Drm *drm) = 0;
|
||||
@@ -99,6 +100,7 @@ class IoctlHelperUpstream : public IoctlHelper {
|
||||
public:
|
||||
IoctlHelper *clone() override;
|
||||
|
||||
bool isVmBindAvailable(Drm *drm) override;
|
||||
uint32_t createGemExt(Drm *drm, const MemRegionsVec &memClassInstances, size_t allocSize, uint32_t &handle) override;
|
||||
std::vector<MemoryRegion> translateToMemoryRegions(const std::vector<uint8_t> ®ionInfo) override;
|
||||
CacheRegion closAlloc(Drm *drm) override;
|
||||
@@ -146,6 +148,7 @@ class IoctlHelperPrelim20 : public IoctlHelper {
|
||||
std::string getIoctlParamString(int param) override;
|
||||
IoctlHelper *clone() override;
|
||||
|
||||
bool isVmBindAvailable(Drm *drm) override;
|
||||
uint32_t createGemExt(Drm *drm, const MemRegionsVec &memClassInstances, size_t allocSize, uint32_t &handle) override;
|
||||
std::vector<MemoryRegion> translateToMemoryRegions(const std::vector<uint8_t> ®ionInfo) override;
|
||||
CacheRegion closAlloc(Drm *drm) override;
|
||||
|
||||
@@ -71,6 +71,18 @@ IoctlHelper *IoctlHelperPrelim20::clone() {
|
||||
return new IoctlHelperPrelim20{};
|
||||
}
|
||||
|
||||
bool IoctlHelperPrelim20::isVmBindAvailable(Drm *drm) {
|
||||
int vmBindSupported = 0;
|
||||
drm_i915_getparam_t getParam = {};
|
||||
getParam.param = PRELIM_I915_PARAM_HAS_VM_BIND;
|
||||
getParam.value = &vmBindSupported;
|
||||
int retVal = IoctlHelper::ioctl(drm, DRM_IOCTL_I915_GETPARAM, &getParam);
|
||||
if (retVal) {
|
||||
return false;
|
||||
}
|
||||
return vmBindSupported;
|
||||
}
|
||||
|
||||
uint32_t IoctlHelperPrelim20::createGemExt(Drm *drm, const MemRegionsVec &memClassInstances, size_t allocSize, uint32_t &handle) {
|
||||
uint32_t regionsSize = static_cast<uint32_t>(memClassInstances.size());
|
||||
std::vector<prelim_drm_i915_gem_memory_class_instance> regions(regionsSize);
|
||||
|
||||
@@ -17,6 +17,10 @@ IoctlHelper *IoctlHelperUpstream::clone() {
|
||||
return new IoctlHelperUpstream{};
|
||||
}
|
||||
|
||||
bool IoctlHelperUpstream::isVmBindAvailable(Drm *drm) {
|
||||
return false;
|
||||
}
|
||||
|
||||
uint32_t IoctlHelperUpstream::createGemExt(Drm *drm, const MemRegionsVec &memClassInstances, size_t allocSize, uint32_t &handle) {
|
||||
uint32_t regionsSize = static_cast<uint32_t>(memClassInstances.size());
|
||||
std::vector<drm_i915_gem_memory_class_instance> regions(regionsSize);
|
||||
|
||||
Reference in New Issue
Block a user