unTypedDataPortCacheFlush pipe_control helper support

Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
Bartosz Dunajski
2021-12-09 12:09:57 +00:00
committed by Compute-Runtime-Automation
parent bac79244d5
commit d07c76c237
10 changed files with 10 additions and 27 deletions

View File

@@ -148,7 +148,7 @@ void HardwareCommandsHelper<GfxFamily>::programCacheFlushAfterWalkerCommand(Line
// 1. make sure previous kernel finished
PipeControlArgs args;
auto &hardwareInfo = commandQueue.getDevice().getHardwareInfo();
args.adjustArgs(hardwareInfo);
args.unTypedDataPortCacheFlush = HwHelper::get(hardwareInfo.platform.eRenderCoreFamily).unTypedDataPortCacheFlushRequired();
MemorySynchronizationCommands<GfxFamily>::addPipeControl(*commandStream, args);

View File

@@ -1325,9 +1325,9 @@ HWTEST_F(HwHelperTest, whenIsSipKernelAsHexadecimalArrayPreferredIsCalledThenRet
}
using isXeHpCoreOrBelow = IsAtMostProduct<IGFX_XE_HP_SDV>;
HWTEST2_F(HwHelperTest, givenXeHPAndBelowPlatformWhenCheckingIfAdditionalPipeControlArgsAreRequiredThenReturnFalse, isXeHpCoreOrBelow) {
HWTEST2_F(HwHelperTest, givenXeHPAndBelowPlatformWhenCheckingIfUnTypedDataPortCacheFlushRequiredThenReturnFalse, isXeHpCoreOrBelow) {
const auto &hwHelper = HwHelper::get(renderCoreFamily);
EXPECT_FALSE(hwHelper.additionalPipeControlArgsRequired());
EXPECT_FALSE(hwHelper.unTypedDataPortCacheFlushRequired());
}
HWTEST2_F(HwHelperTest, givenXeHPAndBelowPlatformPlatformWhenCheckingIfEngineTypeRemappingIsRequiredThenReturnFalse, isXeHpCoreOrBelow) {

View File

@@ -150,9 +150,9 @@ HWTEST2_F(PipeControlHelperTestsDg2AndLater, givenDebugDisableCacheFlushWhenProg
EXPECT_FALSE(pipeControl->getCompressionControlSurfaceCcsFlush());
}
HWTEST2_F(HwHelperTestsDg2AndLater, givenXeHPGAndLaterPlatformWhenCheckingIfUntypedDataPortCacheFlushIsRequiredThenReturnTrue, IsAtLeastXeHpgCore) {
HWTEST2_F(HwHelperTestsDg2AndLater, givenXeHPGAndLaterPlatformWhenCheckingIfUnTypedDataPortCacheFlushRequiredThenReturnTrue, IsAtLeastXeHpgCore) {
auto &hwHelper = HwHelper::get(renderCoreFamily);
EXPECT_TRUE(hwHelper.additionalPipeControlArgsRequired());
EXPECT_TRUE(hwHelper.unTypedDataPortCacheFlushRequired());
}
using HwInfoConfigTestDg2AndLater = ::testing::Test;

View File

@@ -130,7 +130,6 @@ set(NEO_CORE_HELPERS
${CMAKE_CURRENT_SOURCE_DIR}/definitions/mi_flush_args.h
${CMAKE_CURRENT_SOURCE_DIR}/definitions/pipe_control_args_base.h
${CMAKE_CURRENT_SOURCE_DIR}/definitions${BRANCH_DIR_SUFFIX}pipe_control_args.h
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}pipe_control_args.cpp
)
if(SUPPORT_XEHP_AND_LATER)

View File

@@ -14,6 +14,5 @@ struct HardwareInfo;
struct PipeControlArgs : PipeControlArgsBase {
PipeControlArgs() = default;
PipeControlArgs(bool dcFlush) : PipeControlArgsBase(dcFlush) {}
void adjustArgs(const HardwareInfo &hwInfo);
};
} // namespace NEO

View File

@@ -132,7 +132,7 @@ class HwHelper {
virtual size_t getSingleTimestampPacketSize() const = 0;
virtual void applyAdditionalCompressionSettings(Gmm &gmm, bool isNotCompressed) const = 0;
virtual void applyRenderCompressionFlag(Gmm &gmm, uint32_t isCompressed) const = 0;
virtual bool additionalPipeControlArgsRequired() const = 0;
virtual bool unTypedDataPortCacheFlushRequired() const = 0;
virtual bool isEngineTypeRemappingToHwSpecificRequired() const = 0;
static uint32_t getSubDevicesCount(const HardwareInfo *pHwInfo);
@@ -363,7 +363,7 @@ class HwHelperHw : public HwHelper {
void applyRenderCompressionFlag(Gmm &gmm, uint32_t isCompressed) const override;
bool additionalPipeControlArgsRequired() const override;
bool unTypedDataPortCacheFlushRequired() const override;
bool isAssignEngineRoundRobinSupported() const override;

View File

@@ -126,7 +126,7 @@ inline void MemorySynchronizationCommands<GfxFamily>::setPipeControlWAFlags(PIPE
}
template <typename GfxFamily>
bool HwHelperHw<GfxFamily>::additionalPipeControlArgsRequired() const {
bool HwHelperHw<GfxFamily>::unTypedDataPortCacheFlushRequired() const {
return false;
}

View File

@@ -54,7 +54,7 @@ void MemorySynchronizationCommands<Family>::setPipeControlWAFlags(PIPE_CONTROL &
}
template <>
bool HwHelperHw<Family>::additionalPipeControlArgsRequired() const {
bool HwHelperHw<Family>::unTypedDataPortCacheFlushRequired() const {
return true;
}

View File

@@ -1,15 +0,0 @@
/*
* Copyright (C) 2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "pipe_control_args.h"
#include "shared/source/helpers/hw_info.h"
namespace NEO {
void PipeControlArgs::adjustArgs(const HardwareInfo &hwInfo) {
}
} // namespace NEO

View File

@@ -145,7 +145,7 @@ void MemorySynchronizationCommands<Family>::setCacheFlushExtraProperties(PipeCon
}
template <>
bool HwHelperHw<Family>::additionalPipeControlArgsRequired() const {
bool HwHelperHw<Family>::unTypedDataPortCacheFlushRequired() const {
return false;
}