Make drm_neo.cpp independent on i915 headers
Related-To: NEO-6999 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
parent
3b3d40252e
commit
762aebaea3
|
@ -27,7 +27,6 @@
|
|||
#include "shared/source/os_interface/linux/drm_memory_operations_handler_bind.h"
|
||||
#include "shared/source/os_interface/linux/drm_wrappers.h"
|
||||
#include "shared/source/os_interface/linux/hw_device_id.h"
|
||||
#include "shared/source/os_interface/linux/i915.h"
|
||||
#include "shared/source/os_interface/linux/ioctl_helper.h"
|
||||
#include "shared/source/os_interface/linux/os_context_linux.h"
|
||||
#include "shared/source/os_interface/linux/os_inc.h"
|
||||
|
@ -229,7 +228,8 @@ bool Drm::isGpuHangDetected(OsContext &osContext) {
|
|||
void Drm::checkPreemptionSupport() {
|
||||
int value = 0;
|
||||
auto ret = getParamIoctl(DrmParam::ParamHasScheduler, &value);
|
||||
preemptionSupported = ((0 == ret) && (value & I915_SCHEDULER_CAP_PREEMPTION));
|
||||
auto schedulerCapPreemption = ioctlHelper->getDrmParamValue(DrmParam::SchedulerCapPreemption);
|
||||
preemptionSupported = ((0 == ret) && (value & schedulerCapPreemption));
|
||||
}
|
||||
|
||||
void Drm::checkQueueSliceSupport() {
|
||||
|
@ -320,11 +320,11 @@ uint32_t Drm::createDrmContext(uint32_t drmVmId, bool isDirectSubmissionRequeste
|
|||
GemContextCreateExtSetParam extSetparam = {};
|
||||
|
||||
if (drmVmId > 0) {
|
||||
extSetparam.base.name = I915_CONTEXT_CREATE_EXT_SETPARAM;
|
||||
extSetparam.base.name = ioctlHelper->getDrmParamValue(DrmParam::ContextCreateExtSetparam);
|
||||
extSetparam.param.param = ioctlHelper->getDrmParamValue(DrmParam::ContextParamVm);
|
||||
extSetparam.param.value = drmVmId;
|
||||
gcc.extensions = reinterpret_cast<uint64_t>(&extSetparam);
|
||||
gcc.flags |= I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS;
|
||||
gcc.flags |= ioctlHelper->getDrmParamValue(DrmParam::ContextCreateFlagsUseExtensions);
|
||||
}
|
||||
|
||||
if (DebugManager.flags.CreateContextWithAccessCounters.get() != -1) {
|
||||
|
@ -543,7 +543,9 @@ std::string Drm::getDrmVersion(int fileDescriptor) {
|
|||
version.name = name;
|
||||
version.nameLen = 5;
|
||||
|
||||
int ret = SysCalls::ioctl(fileDescriptor, DRM_IOCTL_VERSION, &version);
|
||||
auto requestValue = getIoctlRequestValue(DrmIoctl::Version, nullptr);
|
||||
|
||||
int ret = SysCalls::ioctl(fileDescriptor, requestValue, &version);
|
||||
if (ret) {
|
||||
return {};
|
||||
}
|
||||
|
@ -1206,7 +1208,7 @@ unsigned int Drm::bindDrmContext(uint32_t drmContextId, uint32_t deviceIndex, au
|
|||
}
|
||||
|
||||
if (setupVirtualEngines) {
|
||||
balancer.base.name = I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE;
|
||||
balancer.base.name = ioctlHelper->getDrmParamValue(DrmParam::ContextEnginesExtLoadBalance);
|
||||
contextEngines.extensions = castToUint64(&balancer);
|
||||
contextEngines.engines[0].engineClass = ioctlHelper->getDrmParamValue(DrmParam::EngineClassInvalid);
|
||||
contextEngines.engines[0].engineInstance = ioctlHelper->getDrmParamValue(DrmParam::EngineClassInvalidNone);
|
||||
|
|
|
@ -21,6 +21,8 @@ unsigned int getIoctlRequestValue(DrmIoctl ioctlRequest, IoctlHelper *ioctlHelpe
|
|||
switch (ioctlRequest) {
|
||||
case DrmIoctl::Getparam:
|
||||
return DRM_IOCTL_I915_GETPARAM;
|
||||
case DrmIoctl::Version:
|
||||
return DRM_IOCTL_VERSION;
|
||||
default:
|
||||
UNRECOVERABLE_IF(true);
|
||||
return 0;
|
||||
|
@ -69,4 +71,4 @@ std::string getIoctlString(DrmIoctl ioctlRequest, IoctlHelper *ioctlHelper) {
|
|||
return "";
|
||||
}
|
||||
}
|
||||
} // namespace NEO
|
||||
} // namespace NEO
|
||||
|
|
|
@ -245,9 +245,13 @@ enum class DrmIoctl {
|
|||
SyncobjCreate,
|
||||
SyncobjWait,
|
||||
SyncobjDestroy,
|
||||
Version,
|
||||
};
|
||||
|
||||
enum class DrmParam {
|
||||
ContextCreateExtSetparam,
|
||||
ContextCreateFlagsUseExtensions,
|
||||
ContextEnginesExtLoadBalance,
|
||||
ContextParamEngines,
|
||||
ContextParamGttSize,
|
||||
ContextParamPersistence,
|
||||
|
@ -286,6 +290,7 @@ enum class DrmParam {
|
|||
QueryComputeSlices,
|
||||
QueryMemoryRegions,
|
||||
QueryTopologyInfo,
|
||||
SchedulerCapPreemption,
|
||||
TilingNone,
|
||||
TilingY,
|
||||
};
|
||||
|
|
|
@ -197,6 +197,12 @@ unsigned int IoctlHelper::getIoctlRequestValueBase(DrmIoctl ioctlRequest) const
|
|||
|
||||
int IoctlHelper::getDrmParamValueBase(DrmParam drmParam) const {
|
||||
switch (drmParam) {
|
||||
case DrmParam::ContextCreateExtSetparam:
|
||||
return I915_CONTEXT_CREATE_EXT_SETPARAM;
|
||||
case DrmParam::ContextCreateFlagsUseExtensions:
|
||||
return I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS;
|
||||
case DrmParam::ContextEnginesExtLoadBalance:
|
||||
return I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE;
|
||||
case DrmParam::ContextParamEngines:
|
||||
return I915_CONTEXT_PARAM_ENGINES;
|
||||
case DrmParam::ContextParamGttSize:
|
||||
|
@ -263,6 +269,8 @@ int IoctlHelper::getDrmParamValueBase(DrmParam drmParam) const {
|
|||
return DRM_I915_QUERY_MEMORY_REGIONS;
|
||||
case DrmParam::QueryTopologyInfo:
|
||||
return DRM_I915_QUERY_TOPOLOGY_INFO;
|
||||
case DrmParam::SchedulerCapPreemption:
|
||||
return I915_SCHEDULER_CAP_PREEMPTION;
|
||||
case DrmParam::TilingNone:
|
||||
return I915_TILING_NONE;
|
||||
case DrmParam::TilingY:
|
||||
|
|
|
@ -1367,6 +1367,10 @@ TEST(DrmWrapperTest, WhenGettingDrmIoctlGetparamValueThenIoctlHelperIsNotNeeded)
|
|||
EXPECT_THROW(getIoctlRequestValue(DrmIoctl::DG1GemCreateExt, nullptr), std::runtime_error);
|
||||
}
|
||||
|
||||
TEST(DrmWrapperTest, WhenGettingDrmIoctlVersionValueThenIoctlHelperIsNotNeeded) {
|
||||
EXPECT_EQ(getIoctlRequestValue(DrmIoctl::Version, nullptr), static_cast<unsigned int>(DRM_IOCTL_VERSION));
|
||||
}
|
||||
|
||||
TEST(DrmWrapperTest, WhenGettingChipsetIdParamValueThenIoctlHelperIsNotNeeded) {
|
||||
EXPECT_EQ(getDrmParamValue(DrmParam::ParamChipsetId, nullptr), static_cast<int>(I915_PARAM_CHIPSET_ID));
|
||||
}
|
||||
|
|
|
@ -115,6 +115,9 @@ TEST_F(IoctlPrelimHelperTests, whenGettingIoctlRequestStringThenProperStringIsRe
|
|||
}
|
||||
|
||||
TEST_F(IoctlPrelimHelperTests, whenGettingDrmParamValueThenPropertValueIsReturned) {
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextCreateExtSetparam), static_cast<int>(I915_CONTEXT_CREATE_EXT_SETPARAM));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextCreateFlagsUseExtensions), static_cast<int>(I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextEnginesExtLoadBalance), static_cast<int>(I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextParamEngines), static_cast<int>(I915_CONTEXT_PARAM_ENGINES));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextParamGttSize), static_cast<int>(I915_CONTEXT_PARAM_GTT_SIZE));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextParamPersistence), static_cast<int>(I915_CONTEXT_PARAM_PERSISTENCE));
|
||||
|
@ -153,6 +156,7 @@ TEST_F(IoctlPrelimHelperTests, whenGettingDrmParamValueThenPropertValueIsReturne
|
|||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::QueryMemoryRegions), static_cast<int>(DRM_I915_QUERY_MEMORY_REGIONS));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::QueryComputeSlices), static_cast<int>(PRELIM_DRM_I915_QUERY_COMPUTE_SLICES));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::QueryTopologyInfo), static_cast<int>(DRM_I915_QUERY_TOPOLOGY_INFO));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::SchedulerCapPreemption), static_cast<int>(I915_SCHEDULER_CAP_PREEMPTION));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::TilingNone), static_cast<int>(I915_TILING_NONE));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::TilingY), static_cast<int>(I915_TILING_Y));
|
||||
}
|
||||
|
|
|
@ -99,6 +99,9 @@ TEST(IoctlHelperUpstreamTest, whenGettingDrmParamValueThenPropertValueIsReturned
|
|||
auto executionEnvironment = std::make_unique<MockExecutionEnvironment>();
|
||||
auto drm = std::make_unique<DrmTipMock>(*executionEnvironment->rootDeviceEnvironments[0]);
|
||||
IoctlHelperUpstream ioctlHelper{*drm};
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextCreateExtSetparam), static_cast<int>(I915_CONTEXT_CREATE_EXT_SETPARAM));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextCreateFlagsUseExtensions), static_cast<int>(I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextEnginesExtLoadBalance), static_cast<int>(I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextParamEngines), static_cast<int>(I915_CONTEXT_PARAM_ENGINES));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextParamGttSize), static_cast<int>(I915_CONTEXT_PARAM_GTT_SIZE));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ContextParamPersistence), static_cast<int>(I915_CONTEXT_PARAM_PERSISTENCE));
|
||||
|
@ -135,6 +138,7 @@ TEST(IoctlHelperUpstreamTest, whenGettingDrmParamValueThenPropertValueIsReturned
|
|||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::QueryMemoryRegions), static_cast<int>(DRM_I915_QUERY_MEMORY_REGIONS));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::QueryTopologyInfo), static_cast<int>(DRM_I915_QUERY_TOPOLOGY_INFO));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::QueryComputeSlices), 0);
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::SchedulerCapPreemption), static_cast<int>(I915_SCHEDULER_CAP_PREEMPTION));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::TilingNone), static_cast<int>(I915_TILING_NONE));
|
||||
EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::TilingY), static_cast<int>(I915_TILING_Y));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue