From e67307b724d5a0304c14cc22e6b6dee6f8910f21 Mon Sep 17 00:00:00 2001 From: Mateusz Jablonski Date: Tue, 14 Jun 2022 16:47:02 +0000 Subject: [PATCH] Add DrmParam enum values for I915_EXEC values Related-To: NEO-6852 Signed-off-by: Mateusz Jablonski --- .../linux/os_metric_ip_sampling_imp_linux.cpp | 2 ++ .../sysman/engine/linux/os_engine_imp.cpp | 1 + .../sysman/memory/linux/os_memory_imp_dg1.cpp | 1 + .../memory/linux/os_memory_imp_prelim.cpp | 1 + .../linux/os_scheduler_imp_prelim.cpp | 1 + .../sources/sysman/memory/linux/mock_memory.h | 3 ++- .../linux/drm_direct_submission.inl | 3 ++- .../os_interface/linux/drm_allocation.cpp | 2 ++ .../os_interface/linux/drm_buffer_object.cpp | 2 ++ .../os_interface/linux/drm_command_stream.inl | 3 ++- .../os_interface/linux/drm_engine_mapper.cpp | 11 +++++---- .../os_interface/linux/drm_engine_mapper.h | 5 ++-- .../os_interface/linux/drm_memory_manager.cpp | 2 ++ shared/source/os_interface/linux/drm_neo.cpp | 18 ++++++++++----- shared/source/os_interface/linux/drm_neo.h | 1 - .../source/os_interface/linux/drm_wrappers.h | 4 ++++ .../os_interface/linux/ioctl_helper.cpp | 8 +++++++ .../source/os_interface/linux/memory_info.cpp | 2 ++ shared/test/common/libult/linux/drm_mock.h | 1 + .../linux/device_command_stream_fixture.h | 1 + .../os_interface/linux/drm_mapper_tests.cpp | 23 +++++++++---------- .../linux/ioctl_helper_tests_prelim.cpp | 4 ++++ .../linux/ioctl_helper_tests_upstream.cpp | 4 ++++ 23 files changed, 74 insertions(+), 29 deletions(-) diff --git a/level_zero/tools/source/metrics/linux/os_metric_ip_sampling_imp_linux.cpp b/level_zero/tools/source/metrics/linux/os_metric_ip_sampling_imp_linux.cpp index 2e1aa964ae..e69f65adcb 100644 --- a/level_zero/tools/source/metrics/linux/os_metric_ip_sampling_imp_linux.cpp +++ b/level_zero/tools/source/metrics/linux/os_metric_ip_sampling_imp_linux.cpp @@ -17,6 +17,8 @@ #include "level_zero/core/source/device/device_imp.h" #include "level_zero/tools/source/metrics/os_metric_ip_sampling.h" +#include "drm/i915_drm.h" + #include namespace L0 { diff --git a/level_zero/tools/source/sysman/engine/linux/os_engine_imp.cpp b/level_zero/tools/source/sysman/engine/linux/os_engine_imp.cpp index 826a73fa2a..07b2b0bbf8 100644 --- a/level_zero/tools/source/sysman/engine/linux/os_engine_imp.cpp +++ b/level_zero/tools/source/sysman/engine/linux/os_engine_imp.cpp @@ -9,6 +9,7 @@ #include "shared/source/os_interface/linux/engine_info.h" +#include "drm/i915_drm.h" #include "sysman/linux/os_sysman_imp.h" namespace L0 { diff --git a/level_zero/tools/source/sysman/memory/linux/os_memory_imp_dg1.cpp b/level_zero/tools/source/sysman/memory/linux/os_memory_imp_dg1.cpp index 911290275e..311c78cb4f 100644 --- a/level_zero/tools/source/sysman/memory/linux/os_memory_imp_dg1.cpp +++ b/level_zero/tools/source/sysman/memory/linux/os_memory_imp_dg1.cpp @@ -10,6 +10,7 @@ #include "level_zero/core/source/driver/driver_handle_imp.h" #include "level_zero/tools/source/sysman/memory/linux/os_memory_imp.h" +#include "drm/i915_drm.h" #include "sysman/linux/os_sysman_imp.h" namespace L0 { diff --git a/level_zero/tools/source/sysman/memory/linux/os_memory_imp_prelim.cpp b/level_zero/tools/source/sysman/memory/linux/os_memory_imp_prelim.cpp index c3b7b91a1b..1bf0684198 100644 --- a/level_zero/tools/source/sysman/memory/linux/os_memory_imp_prelim.cpp +++ b/level_zero/tools/source/sysman/memory/linux/os_memory_imp_prelim.cpp @@ -12,6 +12,7 @@ #include "level_zero/core/source/driver/driver_handle.h" #include "level_zero/tools/source/sysman/sysman_const.h" +#include "drm/i915_drm.h" #include "drm/intel_hwconfig_types.h" #include "igfxfmid.h" #include "sysman/linux/os_sysman_imp.h" diff --git a/level_zero/tools/source/sysman/scheduler/linux/os_scheduler_imp_prelim.cpp b/level_zero/tools/source/sysman/scheduler/linux/os_scheduler_imp_prelim.cpp index 994110ad58..d6ff6beb8a 100644 --- a/level_zero/tools/source/sysman/scheduler/linux/os_scheduler_imp_prelim.cpp +++ b/level_zero/tools/source/sysman/scheduler/linux/os_scheduler_imp_prelim.cpp @@ -9,6 +9,7 @@ #include "level_zero/tools/source/sysman/scheduler/linux/os_scheduler_imp.h" +#include "drm/i915_drm.h" #include "sysman/linux/os_sysman_imp.h" namespace L0 { diff --git a/level_zero/tools/test/unit_tests/sources/sysman/memory/linux/mock_memory.h b/level_zero/tools/test/unit_tests/sources/sysman/memory/linux/mock_memory.h index 051371686b..03c62b49db 100644 --- a/level_zero/tools/test/unit_tests/sources/sysman/memory/linux/mock_memory.h +++ b/level_zero/tools/test/unit_tests/sources/sysman/memory/linux/mock_memory.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -13,6 +13,7 @@ #include "level_zero/tools/source/sysman/memory/linux/os_memory_imp.h" #include "level_zero/tools/source/sysman/memory/memory_imp.h" +#include "drm/i915_drm.h" #include "sysman/linux/os_sysman_imp.h" using namespace NEO; diff --git a/shared/source/direct_submission/linux/drm_direct_submission.inl b/shared/source/direct_submission/linux/drm_direct_submission.inl index 86d73d4e12..2c8ef7b5ab 100644 --- a/shared/source/direct_submission/linux/drm_direct_submission.inl +++ b/shared/source/direct_submission/linux/drm_direct_submission.inl @@ -81,7 +81,8 @@ bool DrmDirectSubmission::submit(uint64_t gpuAddress, siz auto bb = static_cast(this->ringCommandStream.getGraphicsAllocation())->getBO(); auto osContextLinux = static_cast(&this->osContext); - auto execFlags = osContextLinux->getEngineFlag() | I915_EXEC_NO_RELOC; + auto &drm = osContextLinux->getDrm(); + auto execFlags = osContextLinux->getEngineFlag() | drm.getIoctlHelper()->getDrmParamValue(DrmParam::ExecNoReloc); auto &drmContextIds = osContextLinux->getDrmContextIds(); ExecObject execObject{}; diff --git a/shared/source/os_interface/linux/drm_allocation.cpp b/shared/source/os_interface/linux/drm_allocation.cpp index 56aea89800..9bf3d61f0b 100644 --- a/shared/source/os_interface/linux/drm_allocation.cpp +++ b/shared/source/os_interface/linux/drm_allocation.cpp @@ -14,6 +14,8 @@ #include "shared/source/os_interface/linux/ioctl_helper.h" #include "shared/source/os_interface/os_context.h" +#include "drm/i915_drm.h" + #include namespace NEO { diff --git a/shared/source/os_interface/linux/drm_buffer_object.cpp b/shared/source/os_interface/linux/drm_buffer_object.cpp index 14b0a0cc94..456bb6dd84 100644 --- a/shared/source/os_interface/linux/drm_buffer_object.cpp +++ b/shared/source/os_interface/linux/drm_buffer_object.cpp @@ -19,6 +19,8 @@ #include "shared/source/os_interface/os_context.h" #include "shared/source/utilities/stackvec.h" +#include "drm/i915_drm.h" + #include #include #include diff --git a/shared/source/os_interface/linux/drm_command_stream.inl b/shared/source/os_interface/linux/drm_command_stream.inl index aa3c1172b8..f0a7f76698 100644 --- a/shared/source/os_interface/linux/drm_command_stream.inl +++ b/shared/source/os_interface/linux/drm_command_stream.inl @@ -212,7 +212,8 @@ int DrmCommandStreamReceiver::exec(const BatchBuffer &batchBuffer, ui BufferObject *bb = alloc->getBO(); DEBUG_BREAK_IF(!bb); - auto execFlags = static_cast(osContext)->getEngineFlag() | I915_EXEC_NO_RELOC; + auto osContextLinux = static_cast(this->osContext); + auto execFlags = osContextLinux->getEngineFlag() | drm->getIoctlHelper()->getDrmParamValue(DrmParam::ExecNoReloc); // Residency hold all allocation except command buffer, hence + 1 auto requiredSize = this->residency.size() + 1; diff --git a/shared/source/os_interface/linux/drm_engine_mapper.cpp b/shared/source/os_interface/linux/drm_engine_mapper.cpp index 58ce9a075b..e194c0c498 100644 --- a/shared/source/os_interface/linux/drm_engine_mapper.cpp +++ b/shared/source/os_interface/linux/drm_engine_mapper.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -9,18 +9,19 @@ #include "shared/source/helpers/debug_helpers.h" #include "shared/source/helpers/engine_node_helper.h" +#include "shared/source/os_interface/linux/drm_wrappers.h" #include "drm/i915_drm.h" namespace NEO { -unsigned int DrmEngineMapper::engineNodeMap(aub_stream::EngineType engineType) { +DrmParam DrmEngineMapper::engineNodeMap(aub_stream::EngineType engineType) { if (EngineHelpers::isCcs(engineType)) { - return I915_EXEC_DEFAULT; + return DrmParam::ExecDefault; } else if (aub_stream::ENGINE_BCS == engineType || EngineHelpers::isLinkBcs(engineType)) { - return I915_EXEC_BLT; + return DrmParam::ExecBlt; } UNRECOVERABLE_IF(engineType != aub_stream::ENGINE_RCS && engineType != aub_stream::ENGINE_CCCS); - return I915_EXEC_RENDER; + return DrmParam::ExecRender; } } // namespace NEO diff --git a/shared/source/os_interface/linux/drm_engine_mapper.h b/shared/source/os_interface/linux/drm_engine_mapper.h index 52573a7f20..e1c9a2ba8d 100644 --- a/shared/source/os_interface/linux/drm_engine_mapper.h +++ b/shared/source/os_interface/linux/drm_engine_mapper.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2021 Intel Corporation + * Copyright (C) 2020-2022 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -11,9 +11,10 @@ namespace NEO { +enum class DrmParam; class DrmEngineMapper { public: - static unsigned int engineNodeMap(aub_stream::EngineType engineType); + static DrmParam engineNodeMap(aub_stream::EngineType engineType); }; } // namespace NEO diff --git a/shared/source/os_interface/linux/drm_memory_manager.cpp b/shared/source/os_interface/linux/drm_memory_manager.cpp index db05ca7c5b..daf323be28 100644 --- a/shared/source/os_interface/linux/drm_memory_manager.cpp +++ b/shared/source/os_interface/linux/drm_memory_manager.cpp @@ -31,6 +31,8 @@ #include "shared/source/os_interface/linux/os_context_linux.h" #include "shared/source/os_interface/os_interface.h" +#include "drm/i915_drm.h" + #include #include #include diff --git a/shared/source/os_interface/linux/drm_neo.cpp b/shared/source/os_interface/linux/drm_neo.cpp index 17edc3c347..d6cd70d514 100644 --- a/shared/source/os_interface/linux/drm_neo.cpp +++ b/shared/source/os_interface/linux/drm_neo.cpp @@ -36,6 +36,8 @@ #include "shared/source/os_interface/os_interface.h" #include "shared/source/utilities/directory.h" +#include "drm/i915_drm.h" + #include #include #include @@ -225,7 +227,7 @@ int Drm::getQueueSliceCount(GemContextParamSseu *sseu) { GemContextParam contextParam = {}; contextParam.param = I915_CONTEXT_PARAM_SSEU; sseu->engine.engineClass = ioctlHelper->getDrmParamValue(DrmParam::EngineClassRender); - sseu->engine.engineInstance = I915_EXEC_DEFAULT; + sseu->engine.engineInstance = ioctlHelper->getDrmParamValue(DrmParam::ExecDefault); contextParam.value = reinterpret_cast(sseu); contextParam.size = sizeof(struct GemContextParamSseu); @@ -1082,12 +1084,15 @@ bool Drm::hasPageFaultSupport() const { unsigned int Drm::bindDrmContext(uint32_t drmContextId, uint32_t deviceIndex, aub_stream::EngineType engineType, bool engineInstancedDevice) { auto engineInfo = this->engineInfo.get(); + + auto retVal = static_cast(ioctlHelper->getDrmParamValue(DrmEngineMapper::engineNodeMap(engineType))); + if (!engineInfo) { - return DrmEngineMapper::engineNodeMap(engineType); + return retVal; } auto engine = engineInfo->getEngineInstance(deviceIndex, engineType); if (!engine) { - return DrmEngineMapper::engineNodeMap(engineType); + return retVal; } bool useVirtualEnginesForCcs = !engineInstancedDevice; @@ -1173,10 +1178,11 @@ unsigned int Drm::bindDrmContext(uint32_t drmContextId, uint32_t deviceIndex, au param.param = I915_CONTEXT_PARAM_ENGINES; param.value = castToUint64(&contextEngines); - auto retVal = ioctl(DrmIoctl::GemContextSetparam, ¶m); - UNRECOVERABLE_IF(retVal != 0); + auto ioctlValue = ioctl(DrmIoctl::GemContextSetparam, ¶m); + UNRECOVERABLE_IF(ioctlValue != 0); - return I915_EXEC_DEFAULT; + retVal = static_cast(ioctlHelper->getDrmParamValue(DrmParam::ExecDefault)); + return retVal; } void Drm::waitForBind(uint32_t vmHandleId) { diff --git a/shared/source/os_interface/linux/drm_neo.h b/shared/source/os_interface/linux/drm_neo.h index dae30b6c6c..e8499daff2 100644 --- a/shared/source/os_interface/linux/drm_neo.h +++ b/shared/source/os_interface/linux/drm_neo.h @@ -21,7 +21,6 @@ #include "shared/source/utilities/api_intercept.h" #include "shared/source/utilities/stackvec.h" -#include "drm/i915_drm.h" #include "engine_node.h" #include "igfxfmid.h" diff --git a/shared/source/os_interface/linux/drm_wrappers.h b/shared/source/os_interface/linux/drm_wrappers.h index 4e27e37d92..0dc472b2bf 100644 --- a/shared/source/os_interface/linux/drm_wrappers.h +++ b/shared/source/os_interface/linux/drm_wrappers.h @@ -236,6 +236,10 @@ enum class DrmParam { EngineClassVideoEnhance, EngineClassInvalid, EngineClassInvalidNone, + ExecBlt, + ExecDefault, + ExecNoReloc, + ExecRender, ParamChipsetId, ParamRevision, ParamHasExecSoftpin, diff --git a/shared/source/os_interface/linux/ioctl_helper.cpp b/shared/source/os_interface/linux/ioctl_helper.cpp index ce13fc7c4a..398ce36e53 100644 --- a/shared/source/os_interface/linux/ioctl_helper.cpp +++ b/shared/source/os_interface/linux/ioctl_helper.cpp @@ -196,6 +196,14 @@ int IoctlHelper::getDrmParamValueBase(DrmParam drmParam) const { return I915_ENGINE_CLASS_INVALID; case DrmParam::EngineClassInvalidNone: return I915_ENGINE_CLASS_INVALID_NONE; + case DrmParam::ExecBlt: + return I915_EXEC_BLT; + case DrmParam::ExecDefault: + return I915_EXEC_DEFAULT; + case DrmParam::ExecNoReloc: + return I915_EXEC_NO_RELOC; + case DrmParam::ExecRender: + return I915_EXEC_RENDER; case DrmParam::ParamChipsetId: return I915_PARAM_CHIPSET_ID; case DrmParam::ParamRevision: diff --git a/shared/source/os_interface/linux/memory_info.cpp b/shared/source/os_interface/linux/memory_info.cpp index 5eaf397e3c..bc73048f1b 100644 --- a/shared/source/os_interface/linux/memory_info.cpp +++ b/shared/source/os_interface/linux/memory_info.cpp @@ -15,6 +15,8 @@ #include "shared/source/helpers/hw_info.h" #include "shared/source/os_interface/linux/drm_neo.h" +#include "drm/i915_drm.h" + #include namespace NEO { diff --git a/shared/test/common/libult/linux/drm_mock.h b/shared/test/common/libult/linux/drm_mock.h index 106b3e13b7..7e1c626798 100644 --- a/shared/test/common/libult/linux/drm_mock.h +++ b/shared/test/common/libult/linux/drm_mock.h @@ -15,6 +15,7 @@ #include "shared/test/common/mocks/linux/mock_drm_wrappers.h" #include "shared/test/common/os_interface/linux/device_command_stream_fixture.h" +#include "drm/i915_drm.h" #include "gtest/gtest.h" #include diff --git a/shared/test/common/os_interface/linux/device_command_stream_fixture.h b/shared/test/common/os_interface/linux/device_command_stream_fixture.h index e761e9a458..f22ac9715f 100644 --- a/shared/test/common/os_interface/linux/device_command_stream_fixture.h +++ b/shared/test/common/os_interface/linux/device_command_stream_fixture.h @@ -13,6 +13,7 @@ #include "shared/test/common/helpers/default_hw_info.h" #include "shared/test/common/mocks/linux/mock_drm_wrappers.h" +#include "drm/i915_drm.h" #include "engine_node.h" #include "gtest/gtest.h" diff --git a/shared/test/unit_test/os_interface/linux/drm_mapper_tests.cpp b/shared/test/unit_test/os_interface/linux/drm_mapper_tests.cpp index b7c9ae549c..fd429ae0cf 100644 --- a/shared/test/unit_test/os_interface/linux/drm_mapper_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/drm_mapper_tests.cpp @@ -6,21 +6,20 @@ */ #include "shared/source/os_interface/linux/drm_engine_mapper.h" +#include "shared/source/os_interface/linux/drm_wrappers.h" #include "shared/test/common/test_macros/test.h" -#include "drm/i915_drm.h" - using namespace NEO; TEST(DrmMapperTests, GivenEngineWhenMappingNodeThenCorrectEngineReturned) { - unsigned int flagBcs = DrmEngineMapper::engineNodeMap(aub_stream::ENGINE_BCS); - unsigned int flagRcs = DrmEngineMapper::engineNodeMap(aub_stream::ENGINE_RCS); - unsigned int flagCcs = DrmEngineMapper::engineNodeMap(aub_stream::ENGINE_CCS); - unsigned int flagCccs = DrmEngineMapper::engineNodeMap(aub_stream::ENGINE_CCCS); - unsigned int expectedBcs = I915_EXEC_BLT; - unsigned int expectedRcs = I915_EXEC_RENDER; - unsigned int expectedCcs = I915_EXEC_DEFAULT; - unsigned int expectedCccs = I915_EXEC_RENDER; + auto flagBcs = DrmEngineMapper::engineNodeMap(aub_stream::ENGINE_BCS); + auto flagRcs = DrmEngineMapper::engineNodeMap(aub_stream::ENGINE_RCS); + auto flagCcs = DrmEngineMapper::engineNodeMap(aub_stream::ENGINE_CCS); + auto flagCccs = DrmEngineMapper::engineNodeMap(aub_stream::ENGINE_CCCS); + auto expectedBcs = DrmParam::ExecBlt; + auto expectedRcs = DrmParam::ExecRender; + auto expectedCcs = DrmParam::ExecDefault; + auto expectedCccs = DrmParam::ExecRender; EXPECT_EQ(expectedBcs, flagBcs); EXPECT_EQ(expectedRcs, flagRcs); EXPECT_EQ(expectedCcs, flagCcs); @@ -33,12 +32,12 @@ TEST(DrmMapperTests, givenLinkCopyEngineWhenMapperCalledThenReturnDefaultBltEngi aub_stream::ENGINE_BCS7, aub_stream::ENGINE_BCS8}}; for (auto engine : bcsLinkEngines) { - EXPECT_EQ(static_cast(I915_EXEC_BLT), DrmEngineMapper::engineNodeMap(engine)); + EXPECT_EQ(DrmParam::ExecBlt, DrmEngineMapper::engineNodeMap(engine)); } } TEST(DrmMapperTests, GivenCcsWhenGettingEngineNodeMapThenReturnDefault) { - unsigned int expected = I915_EXEC_DEFAULT; + auto expected = DrmParam::ExecDefault; EXPECT_EQ(DrmEngineMapper::engineNodeMap(aub_stream::ENGINE_CCS), expected); EXPECT_EQ(DrmEngineMapper::engineNodeMap(aub_stream::ENGINE_CCS1), expected); EXPECT_EQ(DrmEngineMapper::engineNodeMap(aub_stream::ENGINE_CCS2), expected); diff --git a/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_prelim.cpp b/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_prelim.cpp index e0372a085b..023c7d2d7b 100644 --- a/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_prelim.cpp +++ b/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_prelim.cpp @@ -67,6 +67,10 @@ TEST_F(IoctlPrelimHelperTests, whenGettingDrmParamValueThenPropertValueIsReturne EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::EngineClassVideoEnhance), static_cast(I915_ENGINE_CLASS_VIDEO_ENHANCE)); EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::EngineClassInvalid), static_cast(I915_ENGINE_CLASS_INVALID)); EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::EngineClassInvalidNone), static_cast(I915_ENGINE_CLASS_INVALID_NONE)); + EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ExecBlt), static_cast(I915_EXEC_BLT)); + EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ExecDefault), static_cast(I915_EXEC_DEFAULT)); + EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ExecNoReloc), static_cast(I915_EXEC_NO_RELOC)); + EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ExecRender), static_cast(I915_EXEC_RENDER)); EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ParamChipsetId), static_cast(I915_PARAM_CHIPSET_ID)); EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ParamRevision), static_cast(I915_PARAM_REVISION)); EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ParamHasExecSoftpin), static_cast(I915_PARAM_HAS_EXEC_SOFTPIN)); diff --git a/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_upstream.cpp b/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_upstream.cpp index e8f21721d4..657d840654 100644 --- a/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_upstream.cpp +++ b/shared/test/unit_test/os_interface/linux/ioctl_helper_tests_upstream.cpp @@ -58,6 +58,10 @@ TEST(IoctlHelperUpstreamTest, whenGettingDrmParamValueThenPropertValueIsReturned EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::EngineClassVideoEnhance), static_cast(I915_ENGINE_CLASS_VIDEO_ENHANCE)); EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::EngineClassInvalid), static_cast(I915_ENGINE_CLASS_INVALID)); EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::EngineClassInvalidNone), static_cast(I915_ENGINE_CLASS_INVALID_NONE)); + EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ExecBlt), static_cast(I915_EXEC_BLT)); + EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ExecDefault), static_cast(I915_EXEC_DEFAULT)); + EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ExecNoReloc), static_cast(I915_EXEC_NO_RELOC)); + EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ExecRender), static_cast(I915_EXEC_RENDER)); EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ParamChipsetId), static_cast(I915_PARAM_CHIPSET_ID)); EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ParamRevision), static_cast(I915_PARAM_REVISION)); EXPECT_EQ(ioctlHelper.getDrmParamValue(DrmParam::ParamHasExecSoftpin), static_cast(I915_PARAM_HAS_EXEC_SOFTPIN));