Move appendDrmContextFlags to drm_neo.cpp

Use flag for direct submission when prelim kernel is used.

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
Szymon Morek
2021-12-14 12:41:38 +00:00
committed by Compute-Runtime-Automation
parent cc9ae34a6d
commit 7a730200ee
8 changed files with 73 additions and 12 deletions

View File

@@ -257,3 +257,36 @@ TEST(IoctlHelperTestsPrelim, givenDrmAllocationWhenSetMemAdviseWithDevicePreferr
}
EXPECT_EQ(2u, drm.ioctlCallsCount);
}
TEST(IoctlHelperTestsPrelim, givenPrelimsWhenGetDirectSubmissionFlagThenCorrectValueReturned) {
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
executionEnvironment->prepareRootDeviceEnvironments(1);
auto drm = std::make_unique<DrmPrelimMock>(*executionEnvironment->rootDeviceEnvironments[0]);
uint32_t ioctlVal = (1u << 31);
EXPECT_EQ(ioctlVal, IoctlHelper::get(drm.get())->getDirectSubmissionFlag());
}
TEST(IoctlHelperTestsPrelim, givenPrelimsWhenAppendDrmContextFlagsThenCorrectFlagsSet) {
DebugManagerStateRestore stateRestore;
DebugManager.flags.DirectSubmissionDrmContext.set(-1);
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
executionEnvironment->prepareRootDeviceEnvironments(1);
auto drm = std::make_unique<DrmPrelimMock>(*executionEnvironment->rootDeviceEnvironments[0]);
uint32_t ioctlVal = (1u << 31);
drm_i915_gem_context_create_ext ctx{};
drm->appendDrmContextFlags(ctx, true);
EXPECT_EQ(ioctlVal, ctx.flags);
ctx.flags = 0u;
DebugManager.flags.DirectSubmissionDrmContext.set(0);
drm->appendDrmContextFlags(ctx, true);
EXPECT_EQ(0u, ctx.flags);
DebugManager.flags.DirectSubmissionDrmContext.set(1);
drm->appendDrmContextFlags(ctx, false);
EXPECT_EQ(ioctlVal, ctx.flags);
}

View File

@@ -111,3 +111,16 @@ TEST(IoctlHelperTestsUpstream, givenUpstreamWhenSetVmBoAdviseThenReturnTrue) {
auto ioctlHelper = IoctlHelper::get(drm.get());
EXPECT_TRUE(ioctlHelper->setVmBoAdvise(drm.get(), 0, 0, nullptr));
}
TEST(IoctlHelperTestsUpstream, givenUpstreamWhenDirectSubmissionEnabledThenNoFlagsAdded) {
DebugManagerStateRestore stateRestore;
DebugManager.flags.DirectSubmissionDrmContext.set(1);
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
executionEnvironment->prepareRootDeviceEnvironments(1);
auto drm = std::make_unique<DrmTipMock>(*executionEnvironment->rootDeviceEnvironments[0]);
drm_i915_gem_context_create_ext ctx{};
drm->appendDrmContextFlags(ctx, false);
EXPECT_EQ(0u, ctx.flags);
}