mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-20 00:24:58 +08:00
refactor: remove redundant tracking of media sampler programming
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
74d12b7f27
commit
05cf05e10e
@@ -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() {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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> {
|
||||||
|
|||||||
@@ -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};
|
||||||
|
|||||||
@@ -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>();
|
||||||
|
|||||||
@@ -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 = {};
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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{};
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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>();
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user