mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-23 11:03:02 +08:00
unTypedDataPortCacheFlush pipe_control helper support
Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
bac79244d5
commit
d07c76c237
@@ -148,7 +148,7 @@ void HardwareCommandsHelper<GfxFamily>::programCacheFlushAfterWalkerCommand(Line
|
|||||||
// 1. make sure previous kernel finished
|
// 1. make sure previous kernel finished
|
||||||
PipeControlArgs args;
|
PipeControlArgs args;
|
||||||
auto &hardwareInfo = commandQueue.getDevice().getHardwareInfo();
|
auto &hardwareInfo = commandQueue.getDevice().getHardwareInfo();
|
||||||
args.adjustArgs(hardwareInfo);
|
args.unTypedDataPortCacheFlush = HwHelper::get(hardwareInfo.platform.eRenderCoreFamily).unTypedDataPortCacheFlushRequired();
|
||||||
|
|
||||||
MemorySynchronizationCommands<GfxFamily>::addPipeControl(*commandStream, args);
|
MemorySynchronizationCommands<GfxFamily>::addPipeControl(*commandStream, args);
|
||||||
|
|
||||||
|
|||||||
@@ -1325,9 +1325,9 @@ HWTEST_F(HwHelperTest, whenIsSipKernelAsHexadecimalArrayPreferredIsCalledThenRet
|
|||||||
}
|
}
|
||||||
|
|
||||||
using isXeHpCoreOrBelow = IsAtMostProduct<IGFX_XE_HP_SDV>;
|
using isXeHpCoreOrBelow = IsAtMostProduct<IGFX_XE_HP_SDV>;
|
||||||
HWTEST2_F(HwHelperTest, givenXeHPAndBelowPlatformWhenCheckingIfAdditionalPipeControlArgsAreRequiredThenReturnFalse, isXeHpCoreOrBelow) {
|
HWTEST2_F(HwHelperTest, givenXeHPAndBelowPlatformWhenCheckingIfUnTypedDataPortCacheFlushRequiredThenReturnFalse, isXeHpCoreOrBelow) {
|
||||||
const auto &hwHelper = HwHelper::get(renderCoreFamily);
|
const auto &hwHelper = HwHelper::get(renderCoreFamily);
|
||||||
EXPECT_FALSE(hwHelper.additionalPipeControlArgsRequired());
|
EXPECT_FALSE(hwHelper.unTypedDataPortCacheFlushRequired());
|
||||||
}
|
}
|
||||||
|
|
||||||
HWTEST2_F(HwHelperTest, givenXeHPAndBelowPlatformPlatformWhenCheckingIfEngineTypeRemappingIsRequiredThenReturnFalse, isXeHpCoreOrBelow) {
|
HWTEST2_F(HwHelperTest, givenXeHPAndBelowPlatformPlatformWhenCheckingIfEngineTypeRemappingIsRequiredThenReturnFalse, isXeHpCoreOrBelow) {
|
||||||
|
|||||||
@@ -150,9 +150,9 @@ HWTEST2_F(PipeControlHelperTestsDg2AndLater, givenDebugDisableCacheFlushWhenProg
|
|||||||
EXPECT_FALSE(pipeControl->getCompressionControlSurfaceCcsFlush());
|
EXPECT_FALSE(pipeControl->getCompressionControlSurfaceCcsFlush());
|
||||||
}
|
}
|
||||||
|
|
||||||
HWTEST2_F(HwHelperTestsDg2AndLater, givenXeHPGAndLaterPlatformWhenCheckingIfUntypedDataPortCacheFlushIsRequiredThenReturnTrue, IsAtLeastXeHpgCore) {
|
HWTEST2_F(HwHelperTestsDg2AndLater, givenXeHPGAndLaterPlatformWhenCheckingIfUnTypedDataPortCacheFlushRequiredThenReturnTrue, IsAtLeastXeHpgCore) {
|
||||||
auto &hwHelper = HwHelper::get(renderCoreFamily);
|
auto &hwHelper = HwHelper::get(renderCoreFamily);
|
||||||
EXPECT_TRUE(hwHelper.additionalPipeControlArgsRequired());
|
EXPECT_TRUE(hwHelper.unTypedDataPortCacheFlushRequired());
|
||||||
}
|
}
|
||||||
|
|
||||||
using HwInfoConfigTestDg2AndLater = ::testing::Test;
|
using HwInfoConfigTestDg2AndLater = ::testing::Test;
|
||||||
|
|||||||
@@ -130,7 +130,6 @@ set(NEO_CORE_HELPERS
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/definitions/mi_flush_args.h
|
${CMAKE_CURRENT_SOURCE_DIR}/definitions/mi_flush_args.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/definitions/pipe_control_args_base.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}/definitions${BRANCH_DIR_SUFFIX}pipe_control_args.h
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}pipe_control_args.cpp
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if(SUPPORT_XEHP_AND_LATER)
|
if(SUPPORT_XEHP_AND_LATER)
|
||||||
|
|||||||
@@ -14,6 +14,5 @@ struct HardwareInfo;
|
|||||||
struct PipeControlArgs : PipeControlArgsBase {
|
struct PipeControlArgs : PipeControlArgsBase {
|
||||||
PipeControlArgs() = default;
|
PipeControlArgs() = default;
|
||||||
PipeControlArgs(bool dcFlush) : PipeControlArgsBase(dcFlush) {}
|
PipeControlArgs(bool dcFlush) : PipeControlArgsBase(dcFlush) {}
|
||||||
void adjustArgs(const HardwareInfo &hwInfo);
|
|
||||||
};
|
};
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ class HwHelper {
|
|||||||
virtual size_t getSingleTimestampPacketSize() const = 0;
|
virtual size_t getSingleTimestampPacketSize() const = 0;
|
||||||
virtual void applyAdditionalCompressionSettings(Gmm &gmm, bool isNotCompressed) const = 0;
|
virtual void applyAdditionalCompressionSettings(Gmm &gmm, bool isNotCompressed) const = 0;
|
||||||
virtual void applyRenderCompressionFlag(Gmm &gmm, uint32_t isCompressed) 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;
|
virtual bool isEngineTypeRemappingToHwSpecificRequired() const = 0;
|
||||||
|
|
||||||
static uint32_t getSubDevicesCount(const HardwareInfo *pHwInfo);
|
static uint32_t getSubDevicesCount(const HardwareInfo *pHwInfo);
|
||||||
@@ -363,7 +363,7 @@ class HwHelperHw : public HwHelper {
|
|||||||
|
|
||||||
void applyRenderCompressionFlag(Gmm &gmm, uint32_t isCompressed) const override;
|
void applyRenderCompressionFlag(Gmm &gmm, uint32_t isCompressed) const override;
|
||||||
|
|
||||||
bool additionalPipeControlArgsRequired() const override;
|
bool unTypedDataPortCacheFlushRequired() const override;
|
||||||
|
|
||||||
bool isAssignEngineRoundRobinSupported() const override;
|
bool isAssignEngineRoundRobinSupported() const override;
|
||||||
|
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ inline void MemorySynchronizationCommands<GfxFamily>::setPipeControlWAFlags(PIPE
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename GfxFamily>
|
template <typename GfxFamily>
|
||||||
bool HwHelperHw<GfxFamily>::additionalPipeControlArgsRequired() const {
|
bool HwHelperHw<GfxFamily>::unTypedDataPortCacheFlushRequired() const {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ void MemorySynchronizationCommands<Family>::setPipeControlWAFlags(PIPE_CONTROL &
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
bool HwHelperHw<Family>::additionalPipeControlArgsRequired() const {
|
bool HwHelperHw<Family>::unTypedDataPortCacheFlushRequired() const {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -145,7 +145,7 @@ void MemorySynchronizationCommands<Family>::setCacheFlushExtraProperties(PipeCon
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
bool HwHelperHw<Family>::additionalPipeControlArgsRequired() const {
|
bool HwHelperHw<Family>::unTypedDataPortCacheFlushRequired() const {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user