Refactor of pipeline select programming

Adding new interface to cooperate with hw context state
Simplify programming removing unnecessary functions
Code optimization that stop using expensive call and instead
stores configuration parameter

Related-To: NEO-5019

Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2022-09-15 00:28:41 +00:00
committed by Compute-Runtime-Automation
parent 2b13f8af6d
commit 218a98f7f7
22 changed files with 189 additions and 134 deletions

View File

@ -542,27 +542,22 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, RenderSurfaceStateXeHPAndLaterTests, givenSpecificP
using PipelineSelectTest = ::testing::Test;
HWCMDTEST_F(IGFX_XE_HP_CORE, PipelineSelectTest, whenCallingIsSystolicPipelineSelectModeChangedThenReturnCorrectValue) {
using PIPELINE_SELECT = typename FamilyType::PIPELINE_SELECT;
bool oldPipelineSelectSystolicMode = true;
bool newPipelineSelectSystolicMode = false;
auto result = PreambleHelper<FamilyType>::isSystolicPipelineSelectModeChanged(oldPipelineSelectSystolicMode, newPipelineSelectSystolicMode, *defaultHwInfo);
EXPECT_TRUE(result);
}
HWTEST2_F(PipelineSelectTest, WhenProgramPipelineSelectThenProperMaskIsSet, IsWithinXeGfxFamily) {
using PIPELINE_SELECT = typename FamilyType::PIPELINE_SELECT;
PIPELINE_SELECT cmd = FamilyType::cmdInitPipelineSelect;
LinearStream pipelineSelectStream(&cmd, sizeof(cmd));
PreambleHelper<FamilyType>::programPipelineSelect(&pipelineSelectStream, {}, *defaultHwInfo);
PipelineSelectArgs pipelineArgs = {};
pipelineArgs.systolicPipelineSelectSupport = PreambleHelper<FamilyType>::isSystolicModeConfigurable(*defaultHwInfo);
PreambleHelper<FamilyType>::programPipelineSelect(&pipelineSelectStream, pipelineArgs, *defaultHwInfo);
auto expectedMask = pipelineSelectEnablePipelineSelectMaskBits;
if constexpr (FamilyType::isUsingMediaSamplerDopClockGate) {
expectedMask |= pipelineSelectMediaSamplerDopClockGateMaskBits;
}
if (PreambleHelper<FamilyType>::isSystolicModeConfigurable(*defaultHwInfo)) {
if (pipelineArgs.systolicPipelineSelectSupport) {
expectedMask |= pipelineSelectSystolicModeEnableMaskBits;
}