diff --git a/opencl/test/unit_test/helpers/hw_helper_tests.cpp b/opencl/test/unit_test/helpers/hw_helper_tests.cpp index 8dcec7a13f..a4f2103d8c 100644 --- a/opencl/test/unit_test/helpers/hw_helper_tests.cpp +++ b/opencl/test/unit_test/helpers/hw_helper_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017-2020 Intel Corporation + * Copyright (C) 2017-2021 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -1175,3 +1175,9 @@ HWTEST2_F(HwHelperTest, givenHwHelperWhenCheckingSipWaThenFalseIsReturned, isTgl EXPECT_FALSE(helper.isSipWANeeded(*defaultHwInfo)); } + +HWCMDTEST_F(IGFX_GEN8_CORE, HwHelperTest, givenHwHelperWhenAdditionalKernelExecInfoSupportCheckedThenReturnFalse) { + auto &helper = HwHelper::get(renderCoreFamily); + + EXPECT_FALSE(helper.additionalKernelExecInfoSupported(*defaultHwInfo)); +} diff --git a/shared/source/helpers/hw_helper.h b/shared/source/helpers/hw_helper.h index 6926dc084f..4b68f40bde 100644 --- a/shared/source/helpers/hw_helper.h +++ b/shared/source/helpers/hw_helper.h @@ -126,6 +126,7 @@ class HwHelper { virtual bool isCopyOnlyEngineType(EngineGroupType type) const = 0; virtual void adjustAddressWidthForCanonize(uint32_t &addressWidth) const = 0; virtual bool isSipWANeeded(const HardwareInfo &hwInfo) const = 0; + virtual bool additionalKernelExecInfoSupported(const HardwareInfo &hwInfo) const = 0; static uint32_t getSubDevicesCount(const HardwareInfo *pHwInfo); static uint32_t getEnginesCount(const HardwareInfo &hwInfo); @@ -319,6 +320,8 @@ class HwHelperHw : public HwHelper { bool isSipWANeeded(const HardwareInfo &hwInfo) const override; + bool additionalKernelExecInfoSupported(const HardwareInfo &hwInfo) const override; + protected: LocalMemoryAccessMode getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const override; diff --git a/shared/source/helpers/hw_helper_base.inl b/shared/source/helpers/hw_helper_base.inl index 1cda6cedf8..acf8f2fbbf 100644 --- a/shared/source/helpers/hw_helper_base.inl +++ b/shared/source/helpers/hw_helper_base.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2020 Intel Corporation + * Copyright (C) 2019-2021 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -417,6 +417,11 @@ inline bool HwHelperHw::forceBlitterUseForGlobalBuffers(const Hardwar return false; } +template +bool HwHelperHw::additionalKernelExecInfoSupported(const HardwareInfo &hwInfo) const { + return false; +} + template LocalMemoryAccessMode HwHelperHw::getLocalMemoryAccessMode(const HardwareInfo &hwInfo) const { switch (static_cast(DebugManager.flags.ForceLocalMemoryAccessMode.get())) { diff --git a/shared/source/helpers/preamble.h b/shared/source/helpers/preamble.h index 65c04171fa..277eca1e19 100644 --- a/shared/source/helpers/preamble.h +++ b/shared/source/helpers/preamble.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2020 Intel Corporation + * Copyright (C) 2018-2021 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -38,7 +38,7 @@ struct PreambleHelper { static void programThreadArbitration(LinearStream *pCommandStream, uint32_t requiredThreadArbitrationPolicy); static void programPreemption(LinearStream *pCommandStream, Device &device, GraphicsAllocation *preemptionCsr); static void addPipeControlBeforeVfeCmd(LinearStream *pCommandStream, const HardwareInfo *hwInfo, aub_stream::EngineType engineType); - static void appendProgramVFEState(const HardwareInfo &hwInfo, KernelExecutionType kernelExecutionType, void *cmd); + static void appendProgramVFEState(const HardwareInfo &hwInfo, KernelExecutionType kernelExecutionType, uint32_t additionalKernelExecInfo, void *cmd); static uint64_t programVFEState(LinearStream *pCommandStream, const HardwareInfo &hwInfo, uint32_t scratchSize, diff --git a/shared/source/helpers/preamble_base.inl b/shared/source/helpers/preamble_base.inl index d4e40ce86f..a3b7674e36 100644 --- a/shared/source/helpers/preamble_base.inl +++ b/shared/source/helpers/preamble_base.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2020 Intel Corporation + * Copyright (C) 2018-2021 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -117,7 +117,7 @@ void PreambleHelper::programAdditionalFieldsInVfeState(VFE_STATE_TYPE } template -void PreambleHelper::appendProgramVFEState(const HardwareInfo &hwInfo, KernelExecutionType kernelExecutionType, void *cmd) {} +void PreambleHelper::appendProgramVFEState(const HardwareInfo &hwInfo, KernelExecutionType kernelExecutionType, uint32_t additionalKernelExecInfo, void *cmd) {} template uint32_t PreambleHelper::getScratchSizeValueToProgramMediaVfeState(uint32_t scratchSize) { diff --git a/shared/source/helpers/preamble_bdw_plus.inl b/shared/source/helpers/preamble_bdw_plus.inl index 8d6774a9c9..3e942d4afd 100644 --- a/shared/source/helpers/preamble_bdw_plus.inl +++ b/shared/source/helpers/preamble_bdw_plus.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2020 Intel Corporation + * Copyright (C) 2018-2021 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -53,7 +53,7 @@ uint64_t PreambleHelper::programVFEState(LinearStream *pCommandStream cmd.setScratchSpaceBasePointerHigh(highAddress); programAdditionalFieldsInVfeState(&cmd, hwInfo); - appendProgramVFEState(hwInfo, kernelExecutionType, &cmd); + appendProgramVFEState(hwInfo, kernelExecutionType, additionalExecInfo, &cmd); *pMediaVfeState = cmd; return scratchSpaceAddressOffset;