mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-25 05:24:02 +08:00
Update StateComputeModeProperties design
Related-To: NEO-6728 Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
cd15c82eab
commit
43ed1acc63
@@ -47,8 +47,9 @@ set(NEO_CORE_COMMAND_STREAM
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/scratch_space_controller.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/scratch_space_controller_base.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/scratch_space_controller_base.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}stream_properties.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/stream_properties.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/stream_properties.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}stream_properties_extra.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/stream_property.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/submission_status.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/submissions_aggregator.cpp
|
||||
|
||||
@@ -19,7 +19,14 @@ struct StateComputeModeProperties {
|
||||
void setProperties(bool requiresCoherency, uint32_t numGrfRequired, int32_t threadArbitrationPolicy, const HardwareInfo &hwInfo);
|
||||
void setProperties(const StateComputeModeProperties &properties);
|
||||
bool isDirty() const;
|
||||
|
||||
protected:
|
||||
void clearIsDirty();
|
||||
|
||||
bool isDirtyExtra() const;
|
||||
void setPropertiesExtra();
|
||||
void setPropertiesExtra(const StateComputeModeProperties &properties);
|
||||
void clearIsDirtyExtra();
|
||||
};
|
||||
|
||||
struct FrontEndProperties {
|
||||
@@ -28,9 +35,12 @@ struct FrontEndProperties {
|
||||
StreamProperty disableOverdispatch{};
|
||||
StreamProperty singleSliceDispatchCcsMode{};
|
||||
|
||||
void setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch, int32_t engineInstancedDevice, const HardwareInfo &hwInfo);
|
||||
void setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch, int32_t engineInstancedDevice,
|
||||
const HardwareInfo &hwInfo);
|
||||
void setProperties(const FrontEndProperties &properties);
|
||||
bool isDirty() const;
|
||||
|
||||
protected:
|
||||
void clearIsDirty();
|
||||
};
|
||||
|
||||
|
||||
@@ -45,6 +45,8 @@ void StateComputeModeProperties::setProperties(bool requiresCoherency, uint32_t
|
||||
threadArbitrationPolicy = DebugManager.flags.OverrideThreadArbitrationPolicy.get();
|
||||
}
|
||||
this->threadArbitrationPolicy.set(threadArbitrationPolicy);
|
||||
|
||||
setPropertiesExtra();
|
||||
}
|
||||
|
||||
void StateComputeModeProperties::setProperties(const StateComputeModeProperties &properties) {
|
||||
@@ -55,11 +57,13 @@ void StateComputeModeProperties::setProperties(const StateComputeModeProperties
|
||||
zPassAsyncComputeThreadLimit.set(properties.zPassAsyncComputeThreadLimit.value);
|
||||
pixelAsyncComputeThreadLimit.set(properties.pixelAsyncComputeThreadLimit.value);
|
||||
threadArbitrationPolicy.set(properties.threadArbitrationPolicy.value);
|
||||
|
||||
setPropertiesExtra(properties);
|
||||
}
|
||||
|
||||
bool StateComputeModeProperties::isDirty() const {
|
||||
return isCoherencyRequired.isDirty || largeGrfMode.isDirty || zPassAsyncComputeThreadLimit.isDirty ||
|
||||
pixelAsyncComputeThreadLimit.isDirty || threadArbitrationPolicy.isDirty;
|
||||
pixelAsyncComputeThreadLimit.isDirty || threadArbitrationPolicy.isDirty || isDirtyExtra();
|
||||
}
|
||||
|
||||
void StateComputeModeProperties::clearIsDirty() {
|
||||
@@ -68,10 +72,12 @@ void StateComputeModeProperties::clearIsDirty() {
|
||||
zPassAsyncComputeThreadLimit.isDirty = false;
|
||||
pixelAsyncComputeThreadLimit.isDirty = false;
|
||||
threadArbitrationPolicy.isDirty = false;
|
||||
|
||||
clearIsDirtyExtra();
|
||||
}
|
||||
|
||||
void FrontEndProperties::setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch, int32_t engineInstancedDevice,
|
||||
const HardwareInfo &hwInfo) {
|
||||
void FrontEndProperties::setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch,
|
||||
int32_t engineInstancedDevice, const HardwareInfo &hwInfo) {
|
||||
clearIsDirty();
|
||||
|
||||
this->computeDispatchAllWalkerEnable.set(isCooperativeKernel);
|
||||
@@ -90,7 +96,8 @@ void FrontEndProperties::setProperties(const FrontEndProperties &properties) {
|
||||
}
|
||||
|
||||
bool FrontEndProperties::isDirty() const {
|
||||
return disableOverdispatch.isDirty || disableEUFusion.isDirty || singleSliceDispatchCcsMode.isDirty || computeDispatchAllWalkerEnable.isDirty;
|
||||
return disableOverdispatch.isDirty || disableEUFusion.isDirty || singleSliceDispatchCcsMode.isDirty ||
|
||||
computeDispatchAllWalkerEnable.isDirty;
|
||||
}
|
||||
|
||||
void FrontEndProperties::clearIsDirty() {
|
||||
|
||||
20
shared/source/command_stream/stream_properties_extra.cpp
Normal file
20
shared/source/command_stream/stream_properties_extra.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
* Copyright (C) 2022 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/command_stream/stream_properties.h"
|
||||
|
||||
using namespace NEO;
|
||||
|
||||
void StateComputeModeProperties::setPropertiesExtra() {
|
||||
}
|
||||
void StateComputeModeProperties::setPropertiesExtra(const StateComputeModeProperties &properties) {
|
||||
}
|
||||
bool StateComputeModeProperties::isDirtyExtra() const {
|
||||
return false;
|
||||
}
|
||||
void StateComputeModeProperties::clearIsDirtyExtra() {
|
||||
}
|
||||
Reference in New Issue
Block a user