mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-25 05:24:02 +08:00
feature: Add missing pipelined EU thread arbitration on Xe3
Related-To: NEO-13682 Signed-off-by: Vysochyn, Illia <illia.vysochyn@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
f25193c44d
commit
ca72dff1ab
@@ -21,6 +21,7 @@ struct StateComputeModePropertiesSupport {
|
||||
bool devicePreemptionMode = false;
|
||||
bool allocationForScratchAndMidthreadPreemption = false;
|
||||
bool enableVariableRegisterSizeAllocation = false;
|
||||
bool pipelinedEuThreadArbitration = false;
|
||||
};
|
||||
|
||||
struct StateComputeModeProperties {
|
||||
@@ -42,6 +43,8 @@ struct StateComputeModeProperties {
|
||||
|
||||
void copyPropertiesAll(const StateComputeModeProperties &properties);
|
||||
void copyPropertiesGrfNumberThreadArbitration(const StateComputeModeProperties &properties);
|
||||
void setPipelinedEuThreadArbitration();
|
||||
bool isPipelinedEuThreadArbitrationEnabled() const;
|
||||
|
||||
bool isDirty() const;
|
||||
void clearIsDirty();
|
||||
@@ -64,6 +67,7 @@ struct StateComputeModeProperties {
|
||||
StateComputeModePropertiesSupport scmPropertiesSupport = {};
|
||||
int32_t defaultThreadArbitrationPolicy = 0;
|
||||
bool propertiesSupportLoaded = false;
|
||||
bool pipelinedEuThreadArbitration = false;
|
||||
};
|
||||
|
||||
struct FrontEndPropertiesSupport {
|
||||
|
||||
@@ -179,6 +179,10 @@ void StateComputeModeProperties::setPropertiesPerContext(bool requiresCoherency,
|
||||
this->enableVariableRegisterSizeAllocation.set(this->scmPropertiesSupport.enableVariableRegisterSizeAllocation);
|
||||
}
|
||||
|
||||
if (this->scmPropertiesSupport.pipelinedEuThreadArbitration) {
|
||||
setPipelinedEuThreadArbitration();
|
||||
}
|
||||
|
||||
setPropertiesExtraPerContext();
|
||||
if (clearDirtyState) {
|
||||
clearIsDirtyPerContext();
|
||||
@@ -534,3 +538,11 @@ void StateBaseAddressProperties::clearIsDirty() {
|
||||
dynamicStateBaseAddress.isDirty = false;
|
||||
indirectObjectBaseAddress.isDirty = false;
|
||||
}
|
||||
|
||||
void StateComputeModeProperties::setPipelinedEuThreadArbitration() {
|
||||
this->pipelinedEuThreadArbitration = true;
|
||||
}
|
||||
|
||||
bool StateComputeModeProperties::isPipelinedEuThreadArbitrationEnabled() const {
|
||||
return pipelinedEuThreadArbitration;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user