refactor: remove redundant tracking of media sampler programming

Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2025-07-28 11:32:46 +00:00
committed by Compute-Runtime-Automation
parent 74d12b7f27
commit 05cf05e10e
51 changed files with 61 additions and 298 deletions

View File

@@ -307,7 +307,7 @@ void CommandListImp::setStreamPropertiesDefaultSettings(NEO::StreamProperties &s
} }
streamProperties.frontEndState.setPropertiesDisableOverdispatch(cmdListDefaultDisableOverdispatch, true); streamProperties.frontEndState.setPropertiesDisableOverdispatch(cmdListDefaultDisableOverdispatch, true);
streamProperties.pipelineSelect.setPropertiesModeSelectedMediaSamplerClockGate(cmdListDefaultPipelineSelectModeSelected, cmdListDefaultMediaSamplerClockGate, true); streamProperties.pipelineSelect.setPropertiesModeSelected(cmdListDefaultPipelineSelectModeSelected, true);
} }
void CommandListImp::enableInOrderExecution() { void CommandListImp::enableInOrderExecution() {

View File

@@ -62,7 +62,6 @@ struct CommandListImp : public CommandList {
static constexpr bool cmdListDefaultCoherency = false; static constexpr bool cmdListDefaultCoherency = false;
static constexpr bool cmdListDefaultDisableOverdispatch = true; static constexpr bool cmdListDefaultDisableOverdispatch = true;
static constexpr bool cmdListDefaultPipelineSelectModeSelected = true; static constexpr bool cmdListDefaultPipelineSelectModeSelected = true;
static constexpr bool cmdListDefaultMediaSamplerClockGate = false;
static constexpr bool cmdListDefaultGlobalAtomics = false; static constexpr bool cmdListDefaultGlobalAtomics = false;
std::vector<Event *> mappedTsEventList; std::vector<Event *> mappedTsEventList;
std::vector<Event *> interruptEvents; std::vector<Event *> interruptEvents;

View File

@@ -656,7 +656,7 @@ template <GFXCORE_FAMILY gfxCoreFamily>
void CommandQueueHw<gfxCoreFamily>::programPipelineSelectIfGpgpuDisabled(NEO::LinearStream &cmdStream) { void CommandQueueHw<gfxCoreFamily>::programPipelineSelectIfGpgpuDisabled(NEO::LinearStream &cmdStream) {
bool gpgpuEnabled = this->csr->getPreambleSetFlag(); bool gpgpuEnabled = this->csr->getPreambleSetFlag();
if (!gpgpuEnabled) { if (!gpgpuEnabled) {
NEO::PipelineSelectArgs args = {false, false, false, false}; NEO::PipelineSelectArgs args = {false, false, false};
NEO::PreambleHelper<GfxFamily>::programPipelineSelect(&cmdStream, args, device->getNEODevice()->getRootDeviceEnvironment()); NEO::PreambleHelper<GfxFamily>::programPipelineSelect(&cmdStream, args, device->getNEODevice()->getRootDeviceEnvironment());
this->csr->setPreambleSetFlag(true); this->csr->setPreambleSetFlag(true);
} }
@@ -1566,7 +1566,6 @@ void CommandQueueHw<gfxCoreFamily>::programOneCmdListPipelineSelect(NEO::LinearS
NEO::PipelineSelectArgs args = { NEO::PipelineSelectArgs args = {
systolic, systolic,
false, false,
false,
cmdListRequired.commandList->getSystolicModeSupport()}; cmdListRequired.commandList->getSystolicModeSupport()};
NEO::PreambleHelper<GfxFamily>::programPipelineSelect(&commandStream, args, device->getNEODevice()->getRootDeviceEnvironment()); NEO::PreambleHelper<GfxFamily>::programPipelineSelect(&commandStream, args, device->getNEODevice()->getRootDeviceEnvironment());
@@ -1624,7 +1623,6 @@ void CommandQueueHw<gfxCoreFamily>::programRequiredStateComputeModeForCommandLis
NEO::PipelineSelectArgs pipelineSelectArgs = { NEO::PipelineSelectArgs pipelineSelectArgs = {
cmdListRequired.requiredState.pipelineSelect.systolicMode.value == 1, cmdListRequired.requiredState.pipelineSelect.systolicMode.value == 1,
false, false,
false,
cmdListRequired.commandList->getSystolicModeSupport()}; cmdListRequired.commandList->getSystolicModeSupport()};
NEO::EncodeComputeMode<GfxFamily>::programComputeModeCommandWithSynchronization(commandStream, cmdListRequired.requiredState.stateComputeMode, pipelineSelectArgs, NEO::EncodeComputeMode<GfxFamily>::programComputeModeCommandWithSynchronization(commandStream, cmdListRequired.requiredState.stateComputeMode, pipelineSelectArgs,

View File

@@ -274,7 +274,6 @@ HWTEST_F(CommandListExecuteImmediate, GivenImmediateCommandListWhenCommandListIs
EXPECT_EQ(-1, currentCsrStreamProperties.frontEndState.singleSliceDispatchCcsMode.value); EXPECT_EQ(-1, currentCsrStreamProperties.frontEndState.singleSliceDispatchCcsMode.value);
EXPECT_EQ(-1, currentCsrStreamProperties.pipelineSelect.modeSelected.value); EXPECT_EQ(-1, currentCsrStreamProperties.pipelineSelect.modeSelected.value);
EXPECT_EQ(-1, currentCsrStreamProperties.pipelineSelect.mediaSamplerDopClockGate.value);
} }
struct CommandListTest : Test<DeviceFixture> { struct CommandListTest : Test<DeviceFixture> {

View File

@@ -1728,17 +1728,6 @@ HWTEST_TEMPLATED_F(EnqueueKernelTestWithMockCsrHw2, givenContextWithSeveralDevic
context->deviceBitfields[rootDeviceIndex].set(3, false); context->deviceBitfields[rootDeviceIndex].set(3, false);
} }
HWTEST_TEMPLATED_F(EnqueueKernelTestWithMockCsrHw2, givenNonVMEKernelWhenEnqueueKernelThenDispatchFlagsDoesntHaveMediaSamplerRequired) {
auto *mockCsr = static_cast<MockCsrHw2<FamilyType> *>(&pDevice->getGpgpuCommandStreamReceiver());
mockCsr->overrideDispatchPolicy(DispatchMode::batchedDispatch);
MockKernelWithInternals mockKernel(*pClDevice, context);
size_t gws[3] = {1, 0, 0};
mockKernel.kernelInfo.kernelDescriptor.kernelAttributes.flags.usesVme = false;
clEnqueueNDRangeKernel(this->pCmdQ, mockKernel.mockMultiDeviceKernel, 1, nullptr, gws, nullptr, 0, nullptr, nullptr);
EXPECT_FALSE(mockCsr->passedDispatchFlags.pipelineSelectArgs.mediaSamplerRequired);
}
HWTEST_F(EnqueueKernelTest, whenEnqueueKernelWithEngineHintsThenEpilogRequiredIsSet) { HWTEST_F(EnqueueKernelTest, whenEnqueueKernelWithEngineHintsThenEpilogRequiredIsSet) {
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>(); auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
size_t off[3] = {0, 0, 0}; size_t off[3] = {0, 0, 0};

View File

@@ -718,28 +718,17 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, givenFlushTaskWhenInitProgrammingF
EXPECT_FALSE(commandStreamReceiver.bindingTableBaseAddressRequired); EXPECT_FALSE(commandStreamReceiver.bindingTableBaseAddressRequired);
} }
HWTEST2_F(CommandStreamReceiverFlushTaskTests, GivenPreambleNotSentAndMediaSamplerRequirementChangedWhenFlushingTaskThenPipelineSelectIsSent, IsAtMostXeCore) { HWTEST2_F(CommandStreamReceiverFlushTaskTests, GivenPreambleNotSentWhenFlushingTaskThenPipelineSelectIsSent, IsAtMostXeCore) {
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>(); auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
commandStreamReceiver.isPreambleSent = false; commandStreamReceiver.isPreambleSent = false;
commandStreamReceiver.lastMediaSamplerConfig = -1;
flushTask(commandStreamReceiver); flushTask(commandStreamReceiver);
parseCommands<FamilyType>(commandStreamReceiver.commandStream, 0); parseCommands<FamilyType>(commandStreamReceiver.commandStream, 0);
EXPECT_NE(nullptr, getCommand<typename FamilyType::PIPELINE_SELECT>()); EXPECT_NE(nullptr, getCommand<typename FamilyType::PIPELINE_SELECT>());
} }
HWTEST2_F(CommandStreamReceiverFlushTaskTests, GivenPreambleNotSentAndMediaSamplerRequirementNotChangedWhenFlushingTaskThenPipelineSelectIsSent, IsAtMostXeCore) { HWTEST_F(CommandStreamReceiverFlushTaskTests, GivenPreambleSentWhenFlushingTaskThenPipelineSelectIsNotSent) {
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
commandStreamReceiver.isPreambleSent = false;
commandStreamReceiver.lastMediaSamplerConfig = 0;
flushTask(commandStreamReceiver);
parseCommands<FamilyType>(commandStreamReceiver.commandStream, 0);
EXPECT_NE(nullptr, getCommand<typename FamilyType::PIPELINE_SELECT>());
}
HWTEST_F(CommandStreamReceiverFlushTaskTests, GivenPreambleSentAndMediaSamplerRequirementNotChangedWhenFlushingTaskThenPipelineSelectIsNotSent) {
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>(); auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
commandStreamReceiver.isPreambleSent = true; commandStreamReceiver.isPreambleSent = true;
commandStreamReceiver.lastMediaSamplerConfig = 0;
flushTask(commandStreamReceiver); flushTask(commandStreamReceiver);
parseCommands<FamilyType>(commandStreamReceiver.commandStream, 0); parseCommands<FamilyType>(commandStreamReceiver.commandStream, 0);
auto &productHelper = pDevice->getProductHelper(); auto &productHelper = pDevice->getProductHelper();
@@ -749,15 +738,6 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, GivenPreambleSentAndMediaSamplerRe
EXPECT_EQ(nullptr, getCommand<typename FamilyType::PIPELINE_SELECT>()); EXPECT_EQ(nullptr, getCommand<typename FamilyType::PIPELINE_SELECT>());
} }
} }
HWTEST2_F(CommandStreamReceiverFlushTaskTests, GivenPreambleSentAndMediaSamplerRequirementChangedWhenFlushingTaskThenPipelineSelectIsSent, IsAtMostXeCore) {
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
commandStreamReceiver.pipelineSupportFlags.mediaSamplerDopClockGate = true;
commandStreamReceiver.isPreambleSent = true;
commandStreamReceiver.lastMediaSamplerConfig = 1;
flushTask(commandStreamReceiver);
parseCommands<FamilyType>(commandStreamReceiver.commandStream, 0);
EXPECT_NE(nullptr, getCommand<typename FamilyType::PIPELINE_SELECT>());
}
HWTEST2_F(CommandStreamReceiverFlushTaskTests, GivenStateBaseAddressNotSentWhenFlushingTaskThenStateBaseAddressIsSent, IsHeapfulSupported) { HWTEST2_F(CommandStreamReceiverFlushTaskTests, GivenStateBaseAddressNotSentWhenFlushingTaskThenStateBaseAddressIsSent, IsHeapfulSupported) {
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>(); auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();

View File

@@ -1064,7 +1064,6 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, CommandStreamReceiverFlushTaskTests, GivenPreambl
taskLevel = commandStreamReceiver.peekTaskLevel() + 1; taskLevel = commandStreamReceiver.peekTaskLevel() + 1;
commandStreamReceiver.isPreambleSent = true; commandStreamReceiver.isPreambleSent = true;
commandStreamReceiver.lastPreemptionMode = pDevice->getPreemptionMode(); commandStreamReceiver.lastPreemptionMode = pDevice->getPreemptionMode();
commandStreamReceiver.lastMediaSamplerConfig = 0;
commandStreamReceiver.streamProperties.stateComputeMode.isCoherencyRequired.value = 0; commandStreamReceiver.streamProperties.stateComputeMode.isCoherencyRequired.value = 0;
csrSizeRequest.l3ConfigChanged = true; csrSizeRequest.l3ConfigChanged = true;
commandStreamReceiver.overrideCsrSizeReqFlags(csrSizeRequest); commandStreamReceiver.overrideCsrSizeReqFlags(csrSizeRequest);
@@ -1117,24 +1116,6 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, givenCsrWhenPreambleNotSentThenReq
EXPECT_EQ(l3ConfigNotChangedSize, l3ConfigChangedSize); EXPECT_EQ(l3ConfigNotChangedSize, l3ConfigChangedSize);
} }
HWTEST_F(CommandStreamReceiverFlushTaskTests, givenCsrWhenPreambleNotSentThenRequiredCsrSizeDoesntDependOnmediaSamplerConfigChanged) {
UltCommandStreamReceiver<FamilyType> &commandStreamReceiver = (UltCommandStreamReceiver<FamilyType> &)pDevice->getGpgpuCommandStreamReceiver();
CsrSizeRequestFlags csrSizeRequest = {};
DispatchFlags flags = DispatchFlagsHelper::createDefaultDispatchFlags();
commandStreamReceiver.isPreambleSent = false;
csrSizeRequest.mediaSamplerConfigChanged = false;
commandStreamReceiver.overrideCsrSizeReqFlags(csrSizeRequest);
auto mediaSamplerConfigNotChangedSize = commandStreamReceiver.getRequiredCmdStreamSize(flags, *pDevice);
csrSizeRequest.mediaSamplerConfigChanged = true;
commandStreamReceiver.overrideCsrSizeReqFlags(csrSizeRequest);
auto mediaSamplerConfigChangedSize = commandStreamReceiver.getRequiredCmdStreamSize(flags, *pDevice);
EXPECT_EQ(mediaSamplerConfigChangedSize, mediaSamplerConfigNotChangedSize);
}
HWTEST_F(CommandStreamReceiverFlushTaskTests, givenCsrWhenSamplerCacheFlushSentThenRequiredCsrSizeContainsPipecontrolSize) { HWTEST_F(CommandStreamReceiverFlushTaskTests, givenCsrWhenSamplerCacheFlushSentThenRequiredCsrSizeContainsPipecontrolSize) {
UltCommandStreamReceiver<FamilyType> &commandStreamReceiver = (UltCommandStreamReceiver<FamilyType> &)pDevice->getGpgpuCommandStreamReceiver(); UltCommandStreamReceiver<FamilyType> &commandStreamReceiver = (UltCommandStreamReceiver<FamilyType> &)pDevice->getGpgpuCommandStreamReceiver();
CsrSizeRequestFlags csrSizeRequest = {}; CsrSizeRequestFlags csrSizeRequest = {};

View File

@@ -165,8 +165,7 @@ struct UltCommandStreamReceiverTest
configureCSRHeapStatesToNonDirty<GfxFamily>(); configureCSRHeapStatesToNonDirty<GfxFamily>();
commandStreamReceiver.taskLevel = taskLevel; commandStreamReceiver.taskLevel = taskLevel;
commandStreamReceiver.lastMediaSamplerConfig = 0; commandStreamReceiver.streamProperties.pipelineSelect.setPropertiesAll(true, false);
commandStreamReceiver.streamProperties.pipelineSelect.setPropertiesAll(true, false, false);
commandStreamReceiver.streamProperties.stateComputeMode.setPropertiesAll(0, GrfConfig::defaultGrfNumber, commandStreamReceiver.streamProperties.stateComputeMode.setPropertiesAll(0, GrfConfig::defaultGrfNumber,
gfxCoreHelper.getDefaultThreadArbitrationPolicy(), pDevice->getPreemptionMode()); gfxCoreHelper.getDefaultThreadArbitrationPolicy(), pDevice->getPreemptionMode());
commandStreamReceiver.streamProperties.frontEndState.setPropertiesAll(false, false, false); commandStreamReceiver.streamProperties.frontEndState.setPropertiesAll(false, false, false);

View File

@@ -554,8 +554,6 @@ XE2_HPG_CORETEST_F(Xe2CommandStreamReceiverFlushTaskTests, givenNotExistPolicyWh
XE2_HPG_CORETEST_F(Xe2CommandStreamReceiverFlushTaskTests, givenLastSystolicPipelineSelectModeWhenFlushTaskIsCalledThenDontReprogramPipelineSelect) { XE2_HPG_CORETEST_F(Xe2CommandStreamReceiverFlushTaskTests, givenLastSystolicPipelineSelectModeWhenFlushTaskIsCalledThenDontReprogramPipelineSelect) {
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>(); auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
commandStreamReceiver.isPreambleSent = true; commandStreamReceiver.isPreambleSent = true;
commandStreamReceiver.lastMediaSamplerConfig = false;
flushTaskFlags.pipelineSelectArgs.mediaSamplerRequired = false;
flushTaskFlags.pipelineSelectArgs.systolicPipelineSelectMode = true; flushTaskFlags.pipelineSelectArgs.systolicPipelineSelectMode = true;
flushTask(commandStreamReceiver); flushTask(commandStreamReceiver);

View File

@@ -325,8 +325,6 @@ XE3_CORETEST_F(Xe3CommandStreamReceiverFlushTaskTests, givenNotExistPolicyWhenFl
XE3_CORETEST_F(Xe3CommandStreamReceiverFlushTaskTests, givenLastSystolicPipelineSelectModeWhenFlushTaskIsCalledThenDontReprogramPipelineSelect) { XE3_CORETEST_F(Xe3CommandStreamReceiverFlushTaskTests, givenLastSystolicPipelineSelectModeWhenFlushTaskIsCalledThenDontReprogramPipelineSelect) {
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>(); auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
commandStreamReceiver.isPreambleSent = true; commandStreamReceiver.isPreambleSent = true;
commandStreamReceiver.lastMediaSamplerConfig = false;
flushTaskFlags.pipelineSelectArgs.mediaSamplerRequired = false;
flushTaskFlags.pipelineSelectArgs.systolicPipelineSelectMode = true; flushTaskFlags.pipelineSelectArgs.systolicPipelineSelectMode = true;
flushTask(commandStreamReceiver); flushTask(commandStreamReceiver);

View File

@@ -71,7 +71,6 @@ PVCTEST_F(PvcCommandStreamReceiverFlushTaskTests, givenRevisionBAndAboveWhenLast
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>(); auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
flushTaskFlags.pipelineSelectArgs.systolicPipelineSelectMode = true; flushTaskFlags.pipelineSelectArgs.systolicPipelineSelectMode = true;
flushTaskFlags.pipelineSelectArgs.mediaSamplerRequired = false;
struct { struct {
unsigned short revId; unsigned short revId;
@@ -89,7 +88,6 @@ PVCTEST_F(PvcCommandStreamReceiverFlushTaskTests, givenRevisionBAndAboveWhenLast
hwInfo->platform.usRevId = testInput.revId; hwInfo->platform.usRevId = testInput.revId;
productHelper.fillPipelineSelectPropertiesSupportStructure(commandStreamReceiver.pipelineSupportFlags, *hwInfo); productHelper.fillPipelineSelectPropertiesSupportStructure(commandStreamReceiver.pipelineSupportFlags, *hwInfo);
commandStreamReceiver.isPreambleSent = true; commandStreamReceiver.isPreambleSent = true;
commandStreamReceiver.lastMediaSamplerConfig = false;
commandStreamReceiver.lastSystolicPipelineSelectMode = false; commandStreamReceiver.lastSystolicPipelineSelectMode = false;
commandStreamReceiver.streamProperties.pipelineSelect.systolicMode.value = -1; commandStreamReceiver.streamProperties.pipelineSelect.systolicMode.value = -1;

View File

@@ -599,7 +599,6 @@ void CommandStreamReceiver::initProgrammingFlags() {
stateComputeModeDirty = true; stateComputeModeDirty = true;
lastSentL3Config = 0; lastSentL3Config = 0;
lastMediaSamplerConfig = -1;
lastPreemptionMode = PreemptionMode::Initial; lastPreemptionMode = PreemptionMode::Initial;
latestSentStatelessMocsConfig = CacheSettings::unknownMocs; latestSentStatelessMocsConfig = CacheSettings::unknownMocs;

View File

@@ -674,8 +674,6 @@ class CommandStreamReceiver : NEO::NonCopyableAndNonMovableClass {
const uint32_t rootDeviceIndex; const uint32_t rootDeviceIndex;
const DeviceBitfield deviceBitfield; const DeviceBitfield deviceBitfield;
int8_t lastMediaSamplerConfig = -1;
bool isPreambleSent = false; bool isPreambleSent = false;
bool isStateSipSent = false; bool isStateSipSent = false;
bool isEnginePrologueSent = false; bool isEnginePrologueSent = false;

View File

@@ -849,8 +849,7 @@ size_t CommandStreamReceiverHw<GfxFamily>::getRequiredCmdStreamSize(const Dispat
template <typename GfxFamily> template <typename GfxFamily>
inline size_t CommandStreamReceiverHw<GfxFamily>::getCmdSizeForPipelineSelect() const { inline size_t CommandStreamReceiverHw<GfxFamily>::getCmdSizeForPipelineSelect() const {
size_t size = 0; size_t size = 0;
if ((csrSizeRequestFlags.mediaSamplerConfigChanged || if ((csrSizeRequestFlags.systolicPipelineSelectMode ||
csrSizeRequestFlags.systolicPipelineSelectMode ||
!isPreambleSent) && !isPreambleSent) &&
!isPipelineSelectAlreadyProgrammed()) { !isPipelineSelectAlreadyProgrammed()) {
size += PreambleHelper<GfxFamily>::getCmdSizeForPipelineSelect(peekRootDeviceEnvironment()); size += PreambleHelper<GfxFamily>::getCmdSizeForPipelineSelect(peekRootDeviceEnvironment());
@@ -1571,15 +1570,10 @@ void CommandStreamReceiverHw<GfxFamily>::handleFrontEndStateTransition(const Dis
template <typename GfxFamily> template <typename GfxFamily>
void CommandStreamReceiverHw<GfxFamily>::handlePipelineSelectStateTransition(const DispatchFlags &dispatchFlags) { void CommandStreamReceiverHw<GfxFamily>::handlePipelineSelectStateTransition(const DispatchFlags &dispatchFlags) {
if (streamProperties.pipelineSelect.mediaSamplerDopClockGate.value != -1) {
this->lastMediaSamplerConfig = static_cast<int8_t>(streamProperties.pipelineSelect.mediaSamplerDopClockGate.value);
}
if (streamProperties.pipelineSelect.systolicMode.value != -1) { if (streamProperties.pipelineSelect.systolicMode.value != -1) {
this->lastSystolicPipelineSelectMode = !!streamProperties.pipelineSelect.systolicMode.value; this->lastSystolicPipelineSelectMode = !!streamProperties.pipelineSelect.systolicMode.value;
} }
csrSizeRequestFlags.mediaSamplerConfigChanged = this->pipelineSupportFlags.mediaSamplerDopClockGate &&
(this->lastMediaSamplerConfig != static_cast<int8_t>(dispatchFlags.pipelineSelectArgs.mediaSamplerRequired));
csrSizeRequestFlags.systolicPipelineSelectMode = this->pipelineSupportFlags.systolicMode && csrSizeRequestFlags.systolicPipelineSelectMode = this->pipelineSupportFlags.systolicMode &&
(this->lastSystolicPipelineSelectMode != dispatchFlags.pipelineSelectArgs.systolicPipelineSelectMode); (this->lastSystolicPipelineSelectMode != dispatchFlags.pipelineSelectArgs.systolicPipelineSelectMode);
} }
@@ -2005,7 +1999,6 @@ void CommandStreamReceiverHw<GfxFamily>::handleImmediateFlushPipelineSelectState
flushData.pipelineSelectArgs = { flushData.pipelineSelectArgs = {
this->streamProperties.pipelineSelect.systolicMode.value == 1, this->streamProperties.pipelineSelect.systolicMode.value == 1,
false, false,
false,
this->pipelineSupportFlags.systolicMode}; this->pipelineSupportFlags.systolicMode};
} }

View File

@@ -44,11 +44,10 @@ size_t CommandStreamReceiverHw<GfxFamily>::getCmdSizeForL3Config() const { retur
template <typename GfxFamily> template <typename GfxFamily>
void CommandStreamReceiverHw<GfxFamily>::programPipelineSelect(LinearStream &commandStream, PipelineSelectArgs &pipelineSelectArgs) { void CommandStreamReceiverHw<GfxFamily>::programPipelineSelect(LinearStream &commandStream, PipelineSelectArgs &pipelineSelectArgs) {
if (csrSizeRequestFlags.mediaSamplerConfigChanged || csrSizeRequestFlags.systolicPipelineSelectMode || !isPreambleSent) { if (csrSizeRequestFlags.systolicPipelineSelectMode || !isPreambleSent) {
PreambleHelper<GfxFamily>::programPipelineSelect(&commandStream, pipelineSelectArgs, peekRootDeviceEnvironment()); PreambleHelper<GfxFamily>::programPipelineSelect(&commandStream, pipelineSelectArgs, peekRootDeviceEnvironment());
this->lastMediaSamplerConfig = pipelineSelectArgs.mediaSamplerRequired;
this->lastSystolicPipelineSelectMode = pipelineSelectArgs.systolicPipelineSelectMode; this->lastSystolicPipelineSelectMode = pipelineSelectArgs.systolicPipelineSelectMode;
this->streamProperties.pipelineSelect.setPropertiesAll(true, this->lastMediaSamplerConfig, this->lastSystolicPipelineSelectMode); this->streamProperties.pipelineSelect.setPropertiesAll(true, this->lastSystolicPipelineSelectMode);
this->streamProperties.pipelineSelect.clearIsDirty(); this->streamProperties.pipelineSelect.clearIsDirty();
} }
} }

View File

@@ -133,7 +133,6 @@ struct DispatchFlags {
struct CsrSizeRequestFlags { struct CsrSizeRequestFlags {
bool l3ConfigChanged = false; bool l3ConfigChanged = false;
bool preemptionRequestChanged = false; bool preemptionRequestChanged = false;
bool mediaSamplerConfigChanged = false;
bool hasSharedHandles = false; bool hasSharedHandles = false;
bool systolicPipelineSelectMode = false; bool systolicPipelineSelectMode = false;
bool activePartitionsChanged = false; bool activePartitionsChanged = false;

View File

@@ -102,34 +102,6 @@ struct FrontEndProperties {
bool propertiesSupportLoaded = false; bool propertiesSupportLoaded = false;
}; };
struct PipelineSelectPropertiesSupport {
bool mediaSamplerDopClockGate = false;
bool systolicMode = false;
};
struct PipelineSelectProperties {
StreamProperty modeSelected{};
StreamProperty mediaSamplerDopClockGate{};
StreamProperty systolicMode{};
void initSupport(const RootDeviceEnvironment &rootDeviceEnvironment);
void resetState();
void setPropertiesAll(bool modeSelected, bool mediaSamplerDopClockGate, bool systolicMode);
void setPropertiesModeSelectedMediaSamplerClockGate(bool modeSelected, bool mediaSamplerDopClockGate, bool clearDirtyState);
void setPropertySystolicMode(bool systolicMode);
void copyPropertiesAll(const PipelineSelectProperties &properties);
void copyPropertiesSystolicMode(const PipelineSelectProperties &properties);
bool isDirty() const;
void clearIsDirty();
protected:
PipelineSelectPropertiesSupport pipelineSelectPropertiesSupport = {};
bool propertiesSupportLoaded = false;
};
struct StateBaseAddressPropertiesSupport { struct StateBaseAddressPropertiesSupport {
bool bindingTablePoolBaseAddress = false; bool bindingTablePoolBaseAddress = false;
}; };

View File

@@ -310,42 +310,31 @@ void PipelineSelectProperties::resetState() {
clearIsDirty(); clearIsDirty();
this->modeSelected.value = StreamProperty::initValue; this->modeSelected.value = StreamProperty::initValue;
this->mediaSamplerDopClockGate.value = StreamProperty::initValue;
this->systolicMode.value = StreamProperty::initValue; this->systolicMode.value = StreamProperty::initValue;
} }
void PipelineSelectProperties::setPropertiesAll(bool modeSelected, bool mediaSamplerDopClockGate, bool systolicMode) { void PipelineSelectProperties::setPropertiesAll(bool modeSelected, bool systolicMode) {
DEBUG_BREAK_IF(!this->propertiesSupportLoaded); DEBUG_BREAK_IF(!this->propertiesSupportLoaded);
clearIsDirty(); clearIsDirty();
this->modeSelected.set(modeSelected); this->modeSelected.set(modeSelected);
if (this->pipelineSelectPropertiesSupport.mediaSamplerDopClockGate) {
this->mediaSamplerDopClockGate.set(mediaSamplerDopClockGate);
}
if (this->pipelineSelectPropertiesSupport.systolicMode) { if (this->pipelineSelectPropertiesSupport.systolicMode) {
this->systolicMode.set(systolicMode); this->systolicMode.set(systolicMode);
} }
} }
void PipelineSelectProperties::setPropertiesModeSelectedMediaSamplerClockGate(bool modeSelected, bool mediaSamplerDopClockGate, bool clearDirtyState) { void PipelineSelectProperties::setPropertiesModeSelected(bool modeSelected, bool clearDirtyState) {
DEBUG_BREAK_IF(!this->propertiesSupportLoaded); DEBUG_BREAK_IF(!this->propertiesSupportLoaded);
if (!clearDirtyState) { if (!clearDirtyState) {
this->modeSelected.isDirty = false; this->modeSelected.isDirty = false;
this->mediaSamplerDopClockGate.isDirty = false;
} }
this->modeSelected.set(modeSelected); this->modeSelected.set(modeSelected);
if (this->pipelineSelectPropertiesSupport.mediaSamplerDopClockGate) {
this->mediaSamplerDopClockGate.set(mediaSamplerDopClockGate);
}
if (clearDirtyState) { if (clearDirtyState) {
this->modeSelected.isDirty = false; this->modeSelected.isDirty = false;
this->mediaSamplerDopClockGate.isDirty = false;
} }
} }
@@ -363,7 +352,6 @@ void PipelineSelectProperties::copyPropertiesAll(const PipelineSelectProperties
clearIsDirty(); clearIsDirty();
modeSelected.set(properties.modeSelected.value); modeSelected.set(properties.modeSelected.value);
mediaSamplerDopClockGate.set(properties.mediaSamplerDopClockGate.value);
systolicMode.set(properties.systolicMode.value); systolicMode.set(properties.systolicMode.value);
} }
@@ -373,12 +361,11 @@ void PipelineSelectProperties::copyPropertiesSystolicMode(const PipelineSelectPr
} }
bool PipelineSelectProperties::isDirty() const { bool PipelineSelectProperties::isDirty() const {
return modeSelected.isDirty || mediaSamplerDopClockGate.isDirty || systolicMode.isDirty; return modeSelected.isDirty || systolicMode.isDirty;
} }
void PipelineSelectProperties::clearIsDirty() { void PipelineSelectProperties::clearIsDirty() {
modeSelected.isDirty = false; modeSelected.isDirty = false;
mediaSamplerDopClockGate.isDirty = false;
systolicMode.isDirty = false; systolicMode.isDirty = false;
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021-2023 Intel Corporation * Copyright (C) 2021-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@@ -11,6 +11,32 @@
namespace NEO { namespace NEO {
struct PipelineSelectPropertiesSupport {
bool systolicMode = false;
};
struct PipelineSelectProperties {
StreamProperty modeSelected{};
StreamProperty systolicMode{};
void initSupport(const RootDeviceEnvironment &rootDeviceEnvironment);
void resetState();
void setPropertiesAll(bool modeSelected, bool systolicMode);
void setPropertiesModeSelected(bool modeSelected, bool clearDirtyState);
void setPropertySystolicMode(bool systolicMode);
void copyPropertiesAll(const PipelineSelectProperties &properties);
void copyPropertiesSystolicMode(const PipelineSelectProperties &properties);
bool isDirty() const;
void clearIsDirty();
protected:
PipelineSelectPropertiesSupport pipelineSelectPropertiesSupport = {};
bool propertiesSupportLoaded = false;
};
struct StreamProperties { struct StreamProperties {
StateComputeModeProperties stateComputeMode{}; StateComputeModeProperties stateComputeMode{};
FrontEndProperties frontEndState{}; FrontEndProperties frontEndState{};

View File

@@ -39,13 +39,12 @@ size_t CommandStreamReceiverHw<GfxFamily>::getRequiredStateBaseAddressSize(const
template <typename GfxFamily> template <typename GfxFamily>
void CommandStreamReceiverHw<GfxFamily>::programPipelineSelect(LinearStream &commandStream, PipelineSelectArgs &pipelineSelectArgs) { void CommandStreamReceiverHw<GfxFamily>::programPipelineSelect(LinearStream &commandStream, PipelineSelectArgs &pipelineSelectArgs) {
if (csrSizeRequestFlags.mediaSamplerConfigChanged || csrSizeRequestFlags.systolicPipelineSelectMode || !isPreambleSent) { if (csrSizeRequestFlags.systolicPipelineSelectMode || !isPreambleSent) {
if (!isPipelineSelectAlreadyProgrammed()) { if (!isPipelineSelectAlreadyProgrammed()) {
PreambleHelper<GfxFamily>::programPipelineSelect(&commandStream, pipelineSelectArgs, peekRootDeviceEnvironment()); PreambleHelper<GfxFamily>::programPipelineSelect(&commandStream, pipelineSelectArgs, peekRootDeviceEnvironment());
} }
this->lastMediaSamplerConfig = pipelineSelectArgs.mediaSamplerRequired;
this->lastSystolicPipelineSelectMode = pipelineSelectArgs.systolicPipelineSelectMode; this->lastSystolicPipelineSelectMode = pipelineSelectArgs.systolicPipelineSelectMode;
this->streamProperties.pipelineSelect.setPropertiesAll(true, this->lastMediaSamplerConfig, this->lastSystolicPipelineSelectMode); this->streamProperties.pipelineSelect.setPropertiesAll(true, this->lastSystolicPipelineSelectMode);
this->streamProperties.pipelineSelect.clearIsDirty(); this->streamProperties.pipelineSelect.clearIsDirty();
} }
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2021-2023 Intel Corporation * Copyright (C) 2021-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@@ -26,7 +26,6 @@ struct ADLP : public Gen12LpFamily {
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper); static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper);
struct PipelineSelectStateSupport { struct PipelineSelectStateSupport {
static constexpr bool mediaSamplerDopClockGate = true;
static constexpr bool systolicMode = true; static constexpr bool systolicMode = true;
}; };
}; };

View File

@@ -53,7 +53,6 @@ struct Gen12Lp {
}; };
struct PipelineSelectStateSupport { struct PipelineSelectStateSupport {
static constexpr bool mediaSamplerDopClockGate = true;
static constexpr bool systolicMode = false; static constexpr bool systolicMode = false;
}; };

View File

@@ -105,7 +105,7 @@ void PreambleHelper<Family>::programPipelineSelect(LinearStream *pCommandStream,
auto pipeline = pipelineSelectArgs.is3DPipelineRequired ? PIPELINE_SELECT::PIPELINE_SELECTION_3D : PIPELINE_SELECT::PIPELINE_SELECTION_GPGPU; auto pipeline = pipelineSelectArgs.is3DPipelineRequired ? PIPELINE_SELECT::PIPELINE_SELECTION_3D : PIPELINE_SELECT::PIPELINE_SELECTION_GPGPU;
pipelineSelectCmd.setPipelineSelection(pipeline); pipelineSelectCmd.setPipelineSelection(pipeline);
pipelineSelectCmd.setMediaSamplerDopClockGateEnable(!pipelineSelectArgs.mediaSamplerRequired); pipelineSelectCmd.setMediaSamplerDopClockGateEnable(true);
if (pipelineSelectArgs.systolicPipelineSelectSupport) { if (pipelineSelectArgs.systolicPipelineSelectSupport) {
mask |= pipelineSelectSystolicModeEnableMaskBits; mask |= pipelineSelectSystolicModeEnableMaskBits;

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2019-2022 Intel Corporation * Copyright (C) 2019-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@@ -10,7 +10,6 @@
namespace NEO { namespace NEO {
struct PipelineSelectArgs { struct PipelineSelectArgs {
bool systolicPipelineSelectMode = false; bool systolicPipelineSelectMode = false;
bool mediaSamplerRequired = false;
bool is3DPipelineRequired = false; bool is3DPipelineRequired = false;
bool systolicPipelineSelectSupport = false; bool systolicPipelineSelectSupport = false;
}; };

View File

@@ -213,7 +213,6 @@ class ProductHelper {
virtual bool getPreemptionDbgPropertyStateSipSupport() const = 0; virtual bool getPreemptionDbgPropertyStateSipSupport() const = 0;
virtual bool getPreemptionDbgPropertyCsrSurfaceSupport() const = 0; virtual bool getPreemptionDbgPropertyCsrSurfaceSupport() const = 0;
virtual bool getPipelineSelectPropertyMediaSamplerDopClockGateSupport() const = 0;
virtual bool getPipelineSelectPropertySystolicModeSupport() const = 0; virtual bool getPipelineSelectPropertySystolicModeSupport() const = 0;
virtual void fillScmPropertiesSupportStructure(StateComputeModePropertiesSupport &propertiesSupport) const = 0; virtual void fillScmPropertiesSupportStructure(StateComputeModePropertiesSupport &propertiesSupport) const = 0;

View File

@@ -779,12 +779,6 @@ void ProductHelperHw<gfxProduct>::fillFrontEndPropertiesSupportStructure(FrontEn
propertiesSupport.singleSliceDispatchCcsMode = getFrontEndPropertySingleSliceDispatchCcsModeSupport(); propertiesSupport.singleSliceDispatchCcsMode = getFrontEndPropertySingleSliceDispatchCcsModeSupport();
} }
template <PRODUCT_FAMILY gfxProduct>
bool ProductHelperHw<gfxProduct>::getPipelineSelectPropertyMediaSamplerDopClockGateSupport() const {
using GfxProduct = typename HwMapper<gfxProduct>::GfxProduct;
return GfxProduct::PipelineSelectStateSupport::mediaSamplerDopClockGate;
}
template <PRODUCT_FAMILY gfxProduct> template <PRODUCT_FAMILY gfxProduct>
bool ProductHelperHw<gfxProduct>::getPipelineSelectPropertySystolicModeSupport() const { bool ProductHelperHw<gfxProduct>::getPipelineSelectPropertySystolicModeSupport() const {
using GfxProduct = typename HwMapper<gfxProduct>::GfxProduct; using GfxProduct = typename HwMapper<gfxProduct>::GfxProduct;
@@ -793,7 +787,6 @@ bool ProductHelperHw<gfxProduct>::getPipelineSelectPropertySystolicModeSupport()
template <PRODUCT_FAMILY gfxProduct> template <PRODUCT_FAMILY gfxProduct>
void ProductHelperHw<gfxProduct>::fillPipelineSelectPropertiesSupportStructure(PipelineSelectPropertiesSupport &propertiesSupport, const HardwareInfo &hwInfo) const { void ProductHelperHw<gfxProduct>::fillPipelineSelectPropertiesSupportStructure(PipelineSelectPropertiesSupport &propertiesSupport, const HardwareInfo &hwInfo) const {
propertiesSupport.mediaSamplerDopClockGate = getPipelineSelectPropertyMediaSamplerDopClockGateSupport();
propertiesSupport.systolicMode = isSystolicModeConfigurable(hwInfo); propertiesSupport.systolicMode = isSystolicModeConfigurable(hwInfo);
} }

View File

@@ -154,7 +154,6 @@ class ProductHelperHw : public ProductHelper {
bool getPreemptionDbgPropertyStateSipSupport() const override; bool getPreemptionDbgPropertyStateSipSupport() const override;
bool getPreemptionDbgPropertyCsrSurfaceSupport() const override; bool getPreemptionDbgPropertyCsrSurfaceSupport() const override;
bool getPipelineSelectPropertyMediaSamplerDopClockGateSupport() const override;
bool getPipelineSelectPropertySystolicModeSupport() const override; bool getPipelineSelectPropertySystolicModeSupport() const override;
void fillScmPropertiesSupportStructure(StateComputeModePropertiesSupport &propertiesSupport) const override; void fillScmPropertiesSupportStructure(StateComputeModePropertiesSupport &propertiesSupport) const override;

View File

@@ -60,7 +60,6 @@ struct Xe2HpgCore {
}; };
struct PipelineSelectStateSupport { struct PipelineSelectStateSupport {
static constexpr bool mediaSamplerDopClockGate = false;
static constexpr bool systolicMode = false; static constexpr bool systolicMode = false;
}; };

View File

@@ -62,7 +62,6 @@ struct Xe3Core {
}; };
struct PipelineSelectStateSupport { struct PipelineSelectStateSupport {
static constexpr bool mediaSamplerDopClockGate = false;
static constexpr bool systolicMode = false; static constexpr bool systolicMode = false;
}; };

View File

@@ -42,7 +42,6 @@ struct XeHpcCore {
}; };
struct PipelineSelectStateSupport { struct PipelineSelectStateSupport {
static constexpr bool mediaSamplerDopClockGate = false;
static constexpr bool systolicMode = true; static constexpr bool systolicMode = true;
}; };

View File

@@ -60,7 +60,6 @@ struct XeHpgCore {
}; };
struct PipelineSelectStateSupport { struct PipelineSelectStateSupport {
static constexpr bool mediaSamplerDopClockGate = false;
static constexpr bool systolicMode = true; static constexpr bool systolicMode = true;
}; };

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2022-2023 Intel Corporation * Copyright (C) 2022-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@@ -20,10 +20,8 @@ void CommandStreamReceiverSystolicFixture::testBody() {
bool systolicModeSupported = commandStreamReceiver.pipelineSupportFlags.systolicMode; bool systolicModeSupported = commandStreamReceiver.pipelineSupportFlags.systolicMode;
commandStreamReceiver.isPreambleSent = true; commandStreamReceiver.isPreambleSent = true;
commandStreamReceiver.lastMediaSamplerConfig = false;
flushTaskFlags.pipelineSelectArgs.systolicPipelineSelectMode = true; flushTaskFlags.pipelineSelectArgs.systolicPipelineSelectMode = true;
flushTaskFlags.pipelineSelectArgs.mediaSamplerRequired = false;
commandStreamReceiver.flushTask(commandStream, commandStreamReceiver.flushTask(commandStream,
0, 0,

View File

@@ -140,7 +140,6 @@ class UltCommandStreamReceiver : public CommandStreamReceiverHw<GfxFamily> {
using BaseClass::CommandStreamReceiver::isStateSipSent; using BaseClass::CommandStreamReceiver::isStateSipSent;
using BaseClass::CommandStreamReceiver::lastAdditionalKernelExecInfo; using BaseClass::CommandStreamReceiver::lastAdditionalKernelExecInfo;
using BaseClass::CommandStreamReceiver::lastKernelExecutionType; using BaseClass::CommandStreamReceiver::lastKernelExecutionType;
using BaseClass::CommandStreamReceiver::lastMediaSamplerConfig;
using BaseClass::CommandStreamReceiver::lastMemoryCompressionState; using BaseClass::CommandStreamReceiver::lastMemoryCompressionState;
using BaseClass::CommandStreamReceiver::lastPreemptionMode; using BaseClass::CommandStreamReceiver::lastPreemptionMode;
using BaseClass::CommandStreamReceiver::lastSentL3Config; using BaseClass::CommandStreamReceiver::lastSentL3Config;

View File

@@ -434,7 +434,6 @@ struct UnknownProduct {
}; };
struct PipelineSelectStateSupport { struct PipelineSelectStateSupport {
static constexpr bool mediaSamplerDopClockGate = false;
static constexpr bool systolicMode = false; static constexpr bool systolicMode = false;
}; };

View File

@@ -350,7 +350,6 @@ HWTEST_F(CommandStreamReceiverTest, WhenCreatingCsrThenFlagsAreSetCorrectly) {
EXPECT_TRUE(csr.stateComputeModeDirty); EXPECT_TRUE(csr.stateComputeModeDirty);
EXPECT_FALSE(csr.lastVmeSubslicesConfig); EXPECT_FALSE(csr.lastVmeSubslicesConfig);
EXPECT_EQ(0u, csr.lastSentL3Config); EXPECT_EQ(0u, csr.lastSentL3Config);
EXPECT_EQ(-1, csr.lastMediaSamplerConfig);
EXPECT_EQ(PreemptionMode::Initial, csr.lastPreemptionMode); EXPECT_EQ(PreemptionMode::Initial, csr.lastPreemptionMode);
EXPECT_EQ(static_cast<uint32_t>(-1), csr.latestSentStatelessMocsConfig); EXPECT_EQ(static_cast<uint32_t>(-1), csr.latestSentStatelessMocsConfig);
} }
@@ -2808,28 +2807,6 @@ HWTEST_F(CommandStreamReceiverTest, givenPipelineSelectStateNotInitedWhenTransit
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>(); auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
commandStreamReceiver.pipelineSupportFlags.systolicMode = false;
commandStreamReceiver.pipelineSupportFlags.mediaSamplerDopClockGate = true;
dispatchFlags.pipelineSelectArgs.mediaSamplerRequired = false;
commandStreamReceiver.handlePipelineSelectStateTransition(dispatchFlags);
EXPECT_TRUE(commandStreamReceiver.csrSizeRequestFlags.mediaSamplerConfigChanged);
commandStreamReceiver.pipelineSupportFlags.mediaSamplerDopClockGate = false;
commandStreamReceiver.lastMediaSamplerConfig = -1;
commandStreamReceiver.handlePipelineSelectStateTransition(dispatchFlags);
EXPECT_FALSE(commandStreamReceiver.csrSizeRequestFlags.mediaSamplerConfigChanged);
commandStreamReceiver.pipelineSupportFlags.mediaSamplerDopClockGate = true;
commandStreamReceiver.lastMediaSamplerConfig = 0;
commandStreamReceiver.handlePipelineSelectStateTransition(dispatchFlags);
EXPECT_FALSE(commandStreamReceiver.csrSizeRequestFlags.mediaSamplerConfigChanged);
dispatchFlags.pipelineSelectArgs.mediaSamplerRequired = true;
commandStreamReceiver.handlePipelineSelectStateTransition(dispatchFlags);
EXPECT_TRUE(commandStreamReceiver.csrSizeRequestFlags.mediaSamplerConfigChanged);
commandStreamReceiver.pipelineSupportFlags.mediaSamplerDopClockGate = false;
commandStreamReceiver.pipelineSupportFlags.systolicMode = true; commandStreamReceiver.pipelineSupportFlags.systolicMode = true;
commandStreamReceiver.lastSystolicPipelineSelectMode = false; commandStreamReceiver.lastSystolicPipelineSelectMode = false;
@@ -2856,27 +2833,6 @@ HWTEST_F(CommandStreamReceiverTest,
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>(); auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
commandStreamReceiver.pipelineSupportFlags.systolicMode = false;
commandStreamReceiver.pipelineSupportFlags.mediaSamplerDopClockGate = true;
commandStreamReceiver.streamProperties.pipelineSelect.mediaSamplerDopClockGate.value = 1;
commandStreamReceiver.lastMediaSamplerConfig = -1;
dispatchFlags.pipelineSelectArgs.mediaSamplerRequired = false;
commandStreamReceiver.handlePipelineSelectStateTransition(dispatchFlags);
EXPECT_TRUE(commandStreamReceiver.csrSizeRequestFlags.mediaSamplerConfigChanged);
commandStreamReceiver.streamProperties.pipelineSelect.mediaSamplerDopClockGate.value = 0;
dispatchFlags.pipelineSelectArgs.mediaSamplerRequired = true;
commandStreamReceiver.handlePipelineSelectStateTransition(dispatchFlags);
EXPECT_TRUE(commandStreamReceiver.csrSizeRequestFlags.mediaSamplerConfigChanged);
commandStreamReceiver.streamProperties.pipelineSelect.mediaSamplerDopClockGate.value = 0;
commandStreamReceiver.lastMediaSamplerConfig = 1;
dispatchFlags.pipelineSelectArgs.mediaSamplerRequired = false;
commandStreamReceiver.handlePipelineSelectStateTransition(dispatchFlags);
EXPECT_FALSE(commandStreamReceiver.csrSizeRequestFlags.mediaSamplerConfigChanged);
commandStreamReceiver.pipelineSupportFlags.mediaSamplerDopClockGate = false;
commandStreamReceiver.pipelineSupportFlags.systolicMode = true; commandStreamReceiver.pipelineSupportFlags.systolicMode = true;
commandStreamReceiver.streamProperties.pipelineSelect.systolicMode.value = 1; commandStreamReceiver.streamProperties.pipelineSelect.systolicMode.value = 1;
@@ -5618,35 +5574,6 @@ HWTEST2_F(CommandStreamReceiverHwTest, givenSpecialPipelineSelectModeChangedWhen
EXPECT_EQ(expectedSize, size); EXPECT_EQ(expectedSize, size);
} }
HWTEST2_F(CommandStreamReceiverHwTest, givenCsrWhenPreambleSentThenRequiredCsrSizeDependsOnmediaSamplerConfigChanged, IsAtMostXeCore) {
using PIPELINE_SELECT = typename FamilyType::PIPELINE_SELECT;
using PIPE_CONTROL = typename FamilyType::PIPE_CONTROL;
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
CsrSizeRequestFlags csrSizeRequest = {};
DispatchFlags flags = DispatchFlagsHelper::createDefaultDispatchFlags();
commandStreamReceiver.isPreambleSent = true;
csrSizeRequest.mediaSamplerConfigChanged = false;
commandStreamReceiver.overrideCsrSizeReqFlags(csrSizeRequest);
auto mediaSamplerConfigNotChangedSize = commandStreamReceiver.getRequiredCmdStreamSize(flags, *pDevice);
csrSizeRequest.mediaSamplerConfigChanged = true;
commandStreamReceiver.overrideCsrSizeReqFlags(csrSizeRequest);
auto mediaSamplerConfigChangedSize = commandStreamReceiver.getRequiredCmdStreamSize(flags, *pDevice);
EXPECT_NE(mediaSamplerConfigChangedSize, mediaSamplerConfigNotChangedSize);
auto difference = mediaSamplerConfigChangedSize - mediaSamplerConfigNotChangedSize;
size_t expectedDifference = sizeof(PIPELINE_SELECT);
if (MemorySynchronizationCommands<FamilyType>::isBarrierPriorToPipelineSelectWaRequired(pDevice->getRootDeviceEnvironment())) {
expectedDifference += sizeof(PIPE_CONTROL);
}
EXPECT_EQ(expectedDifference, difference);
}
HWTEST_F(CommandStreamReceiverHwTest, givenPreambleSentWhenEstimatingFlushTaskSizeThenResultDependsOnAdditionalCmdsSize) { HWTEST_F(CommandStreamReceiverHwTest, givenPreambleSentWhenEstimatingFlushTaskSizeThenResultDependsOnAdditionalCmdsSize) {
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>(); auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();

View File

@@ -36,7 +36,6 @@ std::vector<StreamProperty *> getAllFrontEndProperties(FrontEndProperties &prope
std::vector<StreamProperty *> getAllPipelineSelectProperties(PipelineSelectProperties &properties) { std::vector<StreamProperty *> getAllPipelineSelectProperties(PipelineSelectProperties &properties) {
std::vector<StreamProperty *> allProperties; std::vector<StreamProperty *> allProperties;
allProperties.push_back(&properties.modeSelected); allProperties.push_back(&properties.modeSelected);
allProperties.push_back(&properties.mediaSamplerDopClockGate);
allProperties.push_back(&properties.systolicMode); allProperties.push_back(&properties.systolicMode);
return allProperties; return allProperties;
} }

View File

@@ -759,21 +759,14 @@ TEST(StreamPropertiesTests, whenSettingPipelineSelectPropertiesThenCorrectValueI
productHelper.fillPipelineSelectPropertiesSupportStructure(pipelineSelectPropertiesSupport, *defaultHwInfo); productHelper.fillPipelineSelectPropertiesSupportStructure(pipelineSelectPropertiesSupport, *defaultHwInfo);
for (auto modeSelected : ::testing::Bool()) { for (auto modeSelected : ::testing::Bool()) {
for (auto mediaSamplerDopClockGate : ::testing::Bool()) { for (auto systolicMode : ::testing::Bool()) {
for (auto systolicMode : ::testing::Bool()) { properties.pipelineSelect.setPropertiesAll(modeSelected, systolicMode);
properties.pipelineSelect.setPropertiesAll(modeSelected, mediaSamplerDopClockGate, systolicMode);
EXPECT_EQ(modeSelected, properties.pipelineSelect.modeSelected.value); EXPECT_EQ(modeSelected, properties.pipelineSelect.modeSelected.value);
if (pipelineSelectPropertiesSupport.mediaSamplerDopClockGate) { if (pipelineSelectPropertiesSupport.systolicMode) {
EXPECT_EQ(mediaSamplerDopClockGate, properties.pipelineSelect.mediaSamplerDopClockGate.value); EXPECT_EQ(systolicMode, properties.pipelineSelect.systolicMode.value);
} else { } else {
EXPECT_EQ(-1, properties.pipelineSelect.mediaSamplerDopClockGate.value); EXPECT_EQ(-1, properties.pipelineSelect.systolicMode.value);
}
if (pipelineSelectPropertiesSupport.systolicMode) {
EXPECT_EQ(systolicMode, properties.pipelineSelect.systolicMode.value);
} else {
EXPECT_EQ(-1, properties.pipelineSelect.systolicMode.value);
}
} }
} }
} }
@@ -782,17 +775,16 @@ TEST(StreamPropertiesTests, whenSettingPipelineSelectPropertiesThenCorrectValueI
TEST(StreamPropertiesTests, givenModeSelectPipelineSelectPropertyWhenSettingChangedPropertyAndCheckIfDirtyThenExpectDirtyState) { TEST(StreamPropertiesTests, givenModeSelectPipelineSelectPropertyWhenSettingChangedPropertyAndCheckIfDirtyThenExpectDirtyState) {
MockPipelineSelectProperties pipeProperties{}; MockPipelineSelectProperties pipeProperties{};
pipeProperties.propertiesSupportLoaded = true; pipeProperties.propertiesSupportLoaded = true;
pipeProperties.pipelineSelectPropertiesSupport.mediaSamplerDopClockGate = true;
pipeProperties.pipelineSelectPropertiesSupport.systolicMode = true; pipeProperties.pipelineSelectPropertiesSupport.systolicMode = true;
constexpr bool constState = false; constexpr bool constState = false;
bool changingState = false; bool changingState = false;
pipeProperties.setPropertiesAll(changingState, constState, constState); pipeProperties.setPropertiesAll(changingState, constState);
EXPECT_TRUE(pipeProperties.isDirty()); EXPECT_TRUE(pipeProperties.isDirty());
changingState = !changingState; changingState = !changingState;
pipeProperties.setPropertiesAll(changingState, constState, constState); pipeProperties.setPropertiesAll(changingState, constState);
EXPECT_TRUE(pipeProperties.isDirty()); EXPECT_TRUE(pipeProperties.isDirty());
} }
@@ -800,26 +792,21 @@ TEST(StreamPropertiesTests, givenModeSelectPipelineSelectPropertyWhenSettingChan
TEST(StreamPropertiesTests, givenSetAllPipelineSelectPropertiesWhenResettingStateThenResetValuesAndDirtyKeepSupportFlagLoaded) { TEST(StreamPropertiesTests, givenSetAllPipelineSelectPropertiesWhenResettingStateThenResetValuesAndDirtyKeepSupportFlagLoaded) {
MockPipelineSelectProperties psProperties{}; MockPipelineSelectProperties psProperties{};
psProperties.propertiesSupportLoaded = true; psProperties.propertiesSupportLoaded = true;
psProperties.pipelineSelectPropertiesSupport.mediaSamplerDopClockGate = true;
psProperties.pipelineSelectPropertiesSupport.systolicMode = true; psProperties.pipelineSelectPropertiesSupport.systolicMode = true;
bool modeSelected = false; bool modeSelected = false;
bool mediaSamplerDopClockGate = false;
bool systolicMode = true; bool systolicMode = true;
psProperties.setPropertiesAll(modeSelected, mediaSamplerDopClockGate, systolicMode); psProperties.setPropertiesAll(modeSelected, systolicMode);
EXPECT_TRUE(psProperties.isDirty()); EXPECT_TRUE(psProperties.isDirty());
EXPECT_EQ(0, psProperties.modeSelected.value); EXPECT_EQ(0, psProperties.modeSelected.value);
EXPECT_EQ(0, psProperties.mediaSamplerDopClockGate.value);
EXPECT_EQ(1, psProperties.systolicMode.value); EXPECT_EQ(1, psProperties.systolicMode.value);
psProperties.resetState(); psProperties.resetState();
EXPECT_FALSE(psProperties.isDirty()); EXPECT_FALSE(psProperties.isDirty());
EXPECT_EQ(-1, psProperties.modeSelected.value); EXPECT_EQ(-1, psProperties.modeSelected.value);
EXPECT_EQ(-1, psProperties.mediaSamplerDopClockGate.value);
EXPECT_EQ(-1, psProperties.systolicMode.value); EXPECT_EQ(-1, psProperties.systolicMode.value);
EXPECT_TRUE(psProperties.propertiesSupportLoaded); EXPECT_TRUE(psProperties.propertiesSupportLoaded);
EXPECT_TRUE(psProperties.pipelineSelectPropertiesSupport.mediaSamplerDopClockGate);
EXPECT_TRUE(psProperties.pipelineSelectPropertiesSupport.systolicMode); EXPECT_TRUE(psProperties.pipelineSelectPropertiesSupport.systolicMode);
} }
@@ -887,53 +874,29 @@ TEST(StreamPropertiesTests, givenModeSelectedMediaSamplerClockGatePipelineSelect
bool clearDirtyState = false; bool clearDirtyState = false;
MockPipelineSelectProperties pipeProperties{}; MockPipelineSelectProperties pipeProperties{};
pipeProperties.propertiesSupportLoaded = true; pipeProperties.propertiesSupportLoaded = true;
pipeProperties.pipelineSelectPropertiesSupport.mediaSamplerDopClockGate = false;
bool modeSelected = false; bool modeSelected = false;
bool mediaSamplerDopClockGate = false; pipeProperties.setPropertiesModeSelected(modeSelected, clearDirtyState);
pipeProperties.setPropertiesModeSelectedMediaSamplerClockGate(modeSelected, mediaSamplerDopClockGate, clearDirtyState);
EXPECT_TRUE(pipeProperties.isDirty()); EXPECT_TRUE(pipeProperties.isDirty());
EXPECT_EQ(0, pipeProperties.modeSelected.value); EXPECT_EQ(0, pipeProperties.modeSelected.value);
EXPECT_EQ(-1, pipeProperties.mediaSamplerDopClockGate.value);
pipeProperties.setPropertiesModeSelectedMediaSamplerClockGate(modeSelected, mediaSamplerDopClockGate, clearDirtyState); pipeProperties.setPropertiesModeSelected(modeSelected, clearDirtyState);
EXPECT_FALSE(pipeProperties.isDirty()); EXPECT_FALSE(pipeProperties.isDirty());
pipeProperties.pipelineSelectPropertiesSupport.mediaSamplerDopClockGate = true;
pipeProperties.setPropertiesModeSelectedMediaSamplerClockGate(modeSelected, mediaSamplerDopClockGate, clearDirtyState);
EXPECT_TRUE(pipeProperties.isDirty());
EXPECT_EQ(0, pipeProperties.modeSelected.value);
EXPECT_EQ(0, pipeProperties.mediaSamplerDopClockGate.value);
pipeProperties.setPropertiesModeSelectedMediaSamplerClockGate(modeSelected, mediaSamplerDopClockGate, clearDirtyState);
EXPECT_FALSE(pipeProperties.isDirty());
EXPECT_EQ(0, pipeProperties.modeSelected.value);
EXPECT_EQ(0, pipeProperties.mediaSamplerDopClockGate.value);
modeSelected = true; modeSelected = true;
mediaSamplerDopClockGate = true; pipeProperties.setPropertiesModeSelected(modeSelected, clearDirtyState);
pipeProperties.setPropertiesModeSelectedMediaSamplerClockGate(modeSelected, mediaSamplerDopClockGate, clearDirtyState);
EXPECT_TRUE(pipeProperties.isDirty()); EXPECT_TRUE(pipeProperties.isDirty());
EXPECT_EQ(1, pipeProperties.modeSelected.value); EXPECT_EQ(1, pipeProperties.modeSelected.value);
EXPECT_EQ(1, pipeProperties.mediaSamplerDopClockGate.value);
pipeProperties.setPropertiesModeSelectedMediaSamplerClockGate(modeSelected, mediaSamplerDopClockGate, clearDirtyState); pipeProperties.setPropertiesModeSelected(modeSelected, clearDirtyState);
EXPECT_FALSE(pipeProperties.isDirty()); EXPECT_FALSE(pipeProperties.isDirty());
EXPECT_EQ(1, pipeProperties.modeSelected.value); EXPECT_EQ(1, pipeProperties.modeSelected.value);
EXPECT_EQ(1, pipeProperties.mediaSamplerDopClockGate.value);
pipeProperties.setPropertiesModeSelectedMediaSamplerClockGate(modeSelected, mediaSamplerDopClockGate, clearDirtyState);
EXPECT_FALSE(pipeProperties.isDirty());
EXPECT_EQ(1, pipeProperties.modeSelected.value);
EXPECT_EQ(1, pipeProperties.mediaSamplerDopClockGate.value);
clearDirtyState = true; clearDirtyState = true;
modeSelected = false; modeSelected = false;
mediaSamplerDopClockGate = false; pipeProperties.setPropertiesModeSelected(modeSelected, clearDirtyState);
pipeProperties.setPropertiesModeSelectedMediaSamplerClockGate(modeSelected, mediaSamplerDopClockGate, clearDirtyState);
EXPECT_FALSE(pipeProperties.isDirty()); EXPECT_FALSE(pipeProperties.isDirty());
EXPECT_EQ(0, pipeProperties.modeSelected.value); EXPECT_EQ(0, pipeProperties.modeSelected.value);
EXPECT_EQ(0, pipeProperties.mediaSamplerDopClockGate.value);
} }
TEST(StreamPropertiesTests, givenStateBaseAddressSupportFlagStateWhenSettingPropertyAndCheckIfDirtyThenExpectCleanStateForNotSupportedAndDirtyForSupported) { TEST(StreamPropertiesTests, givenStateBaseAddressSupportFlagStateWhenSettingPropertyAndCheckIfDirtyThenExpectCleanStateForNotSupportedAndDirtyForSupported) {
@@ -1491,9 +1454,8 @@ TEST(StreamPropertiesTests, givenAllStreamPropertiesSetWhenAllStreamPropertiesRe
globalStreamProperties.frontEndState.setPropertiesAll(isCooperativeKernel, disableEuFusion, disableOverdispatch); globalStreamProperties.frontEndState.setPropertiesAll(isCooperativeKernel, disableEuFusion, disableOverdispatch);
bool modeSelected = false; bool modeSelected = false;
bool mediaSamplerDopClockGate = false;
bool systolicMode = true; bool systolicMode = true;
globalStreamProperties.pipelineSelect.setPropertiesAll(modeSelected, mediaSamplerDopClockGate, systolicMode); globalStreamProperties.pipelineSelect.setPropertiesAll(modeSelected, systolicMode);
int32_t statelessMocs = 1; int32_t statelessMocs = 1;
int64_t bindingTablePoolBaseAddress = 2; int64_t bindingTablePoolBaseAddress = 2;
@@ -1523,7 +1485,6 @@ TEST(StreamPropertiesTests, givenAllStreamPropertiesSetWhenAllStreamPropertiesRe
EXPECT_EQ(-1, globalStreamProperties.frontEndState.singleSliceDispatchCcsMode.value); EXPECT_EQ(-1, globalStreamProperties.frontEndState.singleSliceDispatchCcsMode.value);
EXPECT_EQ(-1, globalStreamProperties.pipelineSelect.modeSelected.value); EXPECT_EQ(-1, globalStreamProperties.pipelineSelect.modeSelected.value);
EXPECT_EQ(-1, globalStreamProperties.pipelineSelect.mediaSamplerDopClockGate.value);
EXPECT_EQ(-1, globalStreamProperties.pipelineSelect.systolicMode.value); EXPECT_EQ(-1, globalStreamProperties.pipelineSelect.systolicMode.value);
EXPECT_EQ(-1, globalStreamProperties.stateBaseAddress.statelessMocs.value); EXPECT_EQ(-1, globalStreamProperties.stateBaseAddress.statelessMocs.value);

View File

@@ -101,7 +101,6 @@ ADLNTEST_F(AdlnProductHelper, givenProductHelperWhenGetCommandsStreamPropertiesS
EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_TRUE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (C) 2022-2023 Intel Corporation * Copyright (C) 2022-2025 Intel Corporation
* *
* SPDX-License-Identifier: MIT * SPDX-License-Identifier: MIT
* *
@@ -24,10 +24,8 @@ ADLPTEST_F(Gen12LpCommandStreamReceiverHwTests, givenSystolicModeChangedWhenFlus
StreamProperties &streamProperties = commandStreamReceiver.getStreamProperties(); StreamProperties &streamProperties = commandStreamReceiver.getStreamProperties();
commandStreamReceiver.isPreambleSent = true; commandStreamReceiver.isPreambleSent = true;
commandStreamReceiver.lastMediaSamplerConfig = false;
flushTaskFlags.pipelineSelectArgs.systolicPipelineSelectMode = true; flushTaskFlags.pipelineSelectArgs.systolicPipelineSelectMode = true;
flushTaskFlags.pipelineSelectArgs.mediaSamplerRequired = false;
commandStreamReceiver.flushTask(commandStream, commandStreamReceiver.flushTask(commandStream,
0, 0,

View File

@@ -108,7 +108,6 @@ ADLPTEST_F(AdlpProductHelper, givenProductHelperWhenGetCommandsStreamPropertiesS
EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_TRUE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_TRUE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_TRUE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }

View File

@@ -103,7 +103,6 @@ ADLSTEST_F(AdlsProductHelper, givenProductHelperWhenGetCommandsStreamPropertiesS
EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_TRUE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }

View File

@@ -157,6 +157,5 @@ DG1TEST_F(Dg1ProductHelper, givenProductHelperWhenGetCommandsStreamPropertiesSup
EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_TRUE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }

View File

@@ -105,7 +105,6 @@ RKLTEST_F(RklProductHelper, givenProductHelperWhenGetCommandsStreamPropertiesSup
EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_TRUE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }

View File

@@ -193,7 +193,6 @@ TGLLPTEST_F(TgllpProductHelper, givenProductHelperWhenGetCommandsStreamPropertie
EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_FALSE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_TRUE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }

View File

@@ -611,7 +611,6 @@ HWTEST_F(ProductHelperTest, WhenFillingPipelineSelectPropertiesSupportThenExpect
PipelineSelectPropertiesSupport pipelineSelectPropertiesSupport = {}; PipelineSelectPropertiesSupport pipelineSelectPropertiesSupport = {};
productHelper->fillPipelineSelectPropertiesSupportStructure(pipelineSelectPropertiesSupport, pInHwInfo); productHelper->fillPipelineSelectPropertiesSupportStructure(pipelineSelectPropertiesSupport, pInHwInfo);
EXPECT_EQ(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport(), pipelineSelectPropertiesSupport.mediaSamplerDopClockGate);
EXPECT_EQ(productHelper->isSystolicModeConfigurable(pInHwInfo), pipelineSelectPropertiesSupport.systolicMode); EXPECT_EQ(productHelper->isSystolicModeConfigurable(pInHwInfo), pipelineSelectPropertiesSupport.systolicMode);
} }

View File

@@ -64,7 +64,6 @@ BMGTEST_F(BmgProductHelper, givenProductHelperWhenGetCommandsStreamPropertiesSup
EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }

View File

@@ -64,7 +64,6 @@ LNLTEST_F(LnlProductHelper, givenProductHelperWhenGetCommandsStreamPropertiesSup
EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }

View File

@@ -56,7 +56,6 @@ XE3_CORETEST_F(Xe3CoreProductHelper, givenProductHelperWhenGetCommandsStreamProp
EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_FALSE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }

View File

@@ -139,7 +139,6 @@ PVCTEST_F(PvcProductHelper, givenProductHelperWhenGetCommandsStreamPropertiesSup
EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_TRUE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_TRUE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }

View File

@@ -80,7 +80,6 @@ DG2TEST_F(Dg2ProductHelper, givenProductHelperWhenGetCommandsStreamPropertiesSup
EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_TRUE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_TRUE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }

View File

@@ -232,7 +232,6 @@ HWTEST2_F(XeLpgProductHelperTests, givenProductHelperWhenGetCommandsStreamProper
EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertyDisableOverDispatchSupport());
EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport()); EXPECT_TRUE(productHelper->getFrontEndPropertySingleSliceDispatchCcsModeSupport());
EXPECT_FALSE(productHelper->getPipelineSelectPropertyMediaSamplerDopClockGateSupport());
EXPECT_TRUE(productHelper->getPipelineSelectPropertySystolicModeSupport()); EXPECT_TRUE(productHelper->getPipelineSelectPropertySystolicModeSupport());
} }