Remove redundant coherency variables for SCM

Remove CommandStreamReceiver::lastSentCoherencyRequest
Remove CsrSizeRequestFlags::coherencyRequestChanged

Related-To: NEO-5995

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski
2021-12-09 11:01:40 +00:00
committed by Compute-Runtime-Automation
parent 7b4c37e50d
commit 3511b4755f
26 changed files with 39 additions and 36 deletions

View File

@@ -376,7 +376,6 @@ void CommandStreamReceiver::initProgrammingFlags() {
lastVmeSubslicesConfig = false;
lastSentL3Config = 0;
lastSentCoherencyRequest = -1;
lastMediaSamplerConfig = -1;
lastPreemptionMode = PreemptionMode::Initial;
latestSentStatelessMocsConfig = 0;

View File

@@ -383,7 +383,6 @@ class CommandStreamReceiver {
const uint32_t rootDeviceIndex;
const DeviceBitfield deviceBitfield;
int8_t lastSentCoherencyRequest = -1;
int8_t lastMediaSamplerConfig = -1;
bool isPreambleSent = false;

View File

@@ -269,7 +269,6 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::flushTask(
this->requiredThreadArbitrationPolicy);
csrSizeRequestFlags.l3ConfigChanged = this->lastSentL3Config != newL3Config;
csrSizeRequestFlags.coherencyRequestChanged = this->lastSentCoherencyRequest != static_cast<int8_t>(dispatchFlags.requiresCoherency);
csrSizeRequestFlags.preemptionRequestChanged = this->lastPreemptionMode != dispatchFlags.preemptionMode;
csrSizeRequestFlags.mediaSamplerConfigChanged = this->lastMediaSamplerConfig != static_cast<int8_t>(dispatchFlags.pipelineSelectArgs.mediaSamplerRequired);
csrSizeRequestFlags.specialPipelineSelectModeChanged = isSpecialPipelineSelectModeChanged;

View File

@@ -19,7 +19,6 @@ void CommandStreamReceiverHw<GfxFamily>::programComputeMode(LinearStream &stream
using PIPE_CONTROL = typename GfxFamily::PIPE_CONTROL;
if (isComputeModeNeeded()) {
programAdditionalPipelineSelect(stream, dispatchFlags.pipelineSelectArgs, true);
this->lastSentCoherencyRequest = static_cast<int8_t>(dispatchFlags.requiresCoherency);
auto hwInfoConfig = HwInfoConfig::get(hwInfo.platform.eProductFamily);
if (hwInfoConfig->isPipeControlPriorToNonPipelinedStateCommandsWARequired(hwInfo, isRcs())) {
@@ -40,7 +39,8 @@ void CommandStreamReceiverHw<GfxFamily>::programComputeMode(LinearStream &stream
template <>
inline bool CommandStreamReceiverHw<Family>::isComputeModeNeeded() const {
return StateComputeModeHelper<Family>::isStateComputeModeRequired(csrSizeRequestFlags, this->lastSentThreadArbitrationPolicy != this->requiredThreadArbitrationPolicy);
return this->streamProperties.stateComputeMode.isDirty() ||
StateComputeModeHelper<Family>::isStateComputeModeRequired(csrSizeRequestFlags, this->lastSentThreadArbitrationPolicy != this->requiredThreadArbitrationPolicy);
}
template <>

View File

@@ -119,7 +119,6 @@ struct DispatchFlags {
struct CsrSizeRequestFlags {
bool l3ConfigChanged = false;
bool coherencyRequestChanged = false;
bool preemptionRequestChanged = false;
bool mediaSamplerConfigChanged = false;
bool hasSharedHandles = false;

View File

@@ -18,7 +18,7 @@ struct StateComputeModeProperties {
void setProperties(bool requiresCoherency, uint32_t numGrfRequired, uint32_t threadArbitrationPolicy);
void setProperties(const StateComputeModeProperties &properties);
bool isDirty();
bool isDirty() const;
void clearIsDirty();
};
@@ -29,7 +29,7 @@ struct FrontEndProperties {
void setProperties(bool isCooperativeKernel, bool disableOverdispatch, int32_t engineInstancedDevice, const HardwareInfo &hwInfo);
void setProperties(const FrontEndProperties &properties);
bool isDirty();
bool isDirty() const;
void clearIsDirty();
};

View File

@@ -48,7 +48,7 @@ void StateComputeModeProperties::setProperties(const StateComputeModeProperties
threadArbitrationPolicy.set(properties.threadArbitrationPolicy.value);
}
bool StateComputeModeProperties::isDirty() {
bool StateComputeModeProperties::isDirty() const {
return isCoherencyRequired.isDirty || largeGrfMode.isDirty || zPassAsyncComputeThreadLimit.isDirty ||
pixelAsyncComputeThreadLimit.isDirty || threadArbitrationPolicy.isDirty;
}
@@ -78,7 +78,7 @@ void FrontEndProperties::setProperties(const FrontEndProperties &properties) {
computeDispatchAllWalkerEnable.set(properties.computeDispatchAllWalkerEnable.value);
}
bool FrontEndProperties::isDirty() {
bool FrontEndProperties::isDirty() const {
return disableOverdispatch.isDirty || singleSliceDispatchCcsMode.isDirty || computeDispatchAllWalkerEnable.isDirty;
}