/* * Copyright (C) 2020-2024 Intel Corporation * * SPDX-License-Identifier: MIT * */ #include "shared/source/debug_settings/debug_settings_manager.h" #include "shared/source/execution_environment/root_device_environment.h" #include "shared/source/os_interface/linux/drm_memory_operations_handler.h" #include "shared/source/os_interface/linux/drm_neo.h" #include "shared/source/os_interface/linux/hw_device_id.h" #include "shared/source/os_interface/product_helper.h" #include #include #include namespace NEO { bool OSInterface::osEnabled64kbPages = false; bool OSInterface::newResourceImplicitFlush = true; bool OSInterface::gpuIdleImplicitFlush = true; bool OSInterface::requiresSupportForWddmTrimNotification = false; bool OSInterface::isDebugAttachAvailable() const { if (driverModel && driverModel->getDriverModelType() == DriverModelType::drm) { return driverModel->as()->isDebugAttachAvailable(); } return false; } bool OSInterface::isLockablePointer(bool isLockable) const { return true; } bool initDrmOsInterface(std::unique_ptr &&hwDeviceId, uint32_t rootDeviceIndex, RootDeviceEnvironment *rootDeviceEnv) { auto hwDeviceIdDrm = std::unique_ptr(reinterpret_cast(hwDeviceId.release())); Drm *drm = Drm::create(std::move(hwDeviceIdDrm), *rootDeviceEnv); if (!drm) { return false; } auto &dstOsInterface = rootDeviceEnv->osInterface; dstOsInterface.reset(new OSInterface()); dstOsInterface->setDriverModel(std::unique_ptr(drm)); auto hardwareInfo = rootDeviceEnv->getMutableHardwareInfo(); auto &productHelper = rootDeviceEnv->getHelper(); if (productHelper.configureHwInfoDrm(hardwareInfo, hardwareInfo, *rootDeviceEnv)) { return false; } const bool isCsrHwWithAub = obtainCsrTypeFromIntegerValue(debugManager.flags.SetCommandStreamReceiver.get(), CommandStreamReceiverType::hardware) == CommandStreamReceiverType::hardwareWithAub; rootDeviceEnv->memoryOperationsInterface = DrmMemoryOperationsHandler::create(*drm, rootDeviceIndex, isCsrHwWithAub); return true; } } // namespace NEO