Skip to content

Commit 43ed1ac

Browse files
Update StateComputeModeProperties design
Related-To: NEO-6728 Signed-off-by: Filip Hazubski <[email protected]>
1 parent cd15c82 commit 43ed1ac

File tree

4 files changed

+44
-6
lines changed

4 files changed

+44
-6
lines changed

shared/source/command_stream/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,9 @@ set(NEO_CORE_COMMAND_STREAM
4747
${CMAKE_CURRENT_SOURCE_DIR}/scratch_space_controller.h
4848
${CMAKE_CURRENT_SOURCE_DIR}/scratch_space_controller_base.cpp
4949
${CMAKE_CURRENT_SOURCE_DIR}/scratch_space_controller_base.h
50-
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}stream_properties.cpp
50+
${CMAKE_CURRENT_SOURCE_DIR}/stream_properties.cpp
5151
${CMAKE_CURRENT_SOURCE_DIR}/stream_properties.h
52+
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}stream_properties_extra.cpp
5253
${CMAKE_CURRENT_SOURCE_DIR}/stream_property.h
5354
${CMAKE_CURRENT_SOURCE_DIR}/submission_status.h
5455
${CMAKE_CURRENT_SOURCE_DIR}/submissions_aggregator.cpp

shared/source/command_stream/definitions/stream_properties.inl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,14 @@ struct StateComputeModeProperties {
1919
void setProperties(bool requiresCoherency, uint32_t numGrfRequired, int32_t threadArbitrationPolicy, const HardwareInfo &hwInfo);
2020
void setProperties(const StateComputeModeProperties &properties);
2121
bool isDirty() const;
22+
23+
protected:
2224
void clearIsDirty();
25+
26+
bool isDirtyExtra() const;
27+
void setPropertiesExtra();
28+
void setPropertiesExtra(const StateComputeModeProperties &properties);
29+
void clearIsDirtyExtra();
2330
};
2431

2532
struct FrontEndProperties {
@@ -28,9 +35,12 @@ struct FrontEndProperties {
2835
StreamProperty disableOverdispatch{};
2936
StreamProperty singleSliceDispatchCcsMode{};
3037

31-
void setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch, int32_t engineInstancedDevice, const HardwareInfo &hwInfo);
38+
void setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch, int32_t engineInstancedDevice,
39+
const HardwareInfo &hwInfo);
3240
void setProperties(const FrontEndProperties &properties);
3341
bool isDirty() const;
42+
43+
protected:
3444
void clearIsDirty();
3545
};
3646

shared/source/command_stream/stream_properties.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ void StateComputeModeProperties::setProperties(bool requiresCoherency, uint32_t
4545
threadArbitrationPolicy = DebugManager.flags.OverrideThreadArbitrationPolicy.get();
4646
}
4747
this->threadArbitrationPolicy.set(threadArbitrationPolicy);
48+
49+
setPropertiesExtra();
4850
}
4951

5052
void StateComputeModeProperties::setProperties(const StateComputeModeProperties &properties) {
@@ -55,11 +57,13 @@ void StateComputeModeProperties::setProperties(const StateComputeModeProperties
5557
zPassAsyncComputeThreadLimit.set(properties.zPassAsyncComputeThreadLimit.value);
5658
pixelAsyncComputeThreadLimit.set(properties.pixelAsyncComputeThreadLimit.value);
5759
threadArbitrationPolicy.set(properties.threadArbitrationPolicy.value);
60+
61+
setPropertiesExtra(properties);
5862
}
5963

6064
bool StateComputeModeProperties::isDirty() const {
6165
return isCoherencyRequired.isDirty || largeGrfMode.isDirty || zPassAsyncComputeThreadLimit.isDirty ||
62-
pixelAsyncComputeThreadLimit.isDirty || threadArbitrationPolicy.isDirty;
66+
pixelAsyncComputeThreadLimit.isDirty || threadArbitrationPolicy.isDirty || isDirtyExtra();
6367
}
6468

6569
void StateComputeModeProperties::clearIsDirty() {
@@ -68,10 +72,12 @@ void StateComputeModeProperties::clearIsDirty() {
6872
zPassAsyncComputeThreadLimit.isDirty = false;
6973
pixelAsyncComputeThreadLimit.isDirty = false;
7074
threadArbitrationPolicy.isDirty = false;
75+
76+
clearIsDirtyExtra();
7177
}
7278

73-
void FrontEndProperties::setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch, int32_t engineInstancedDevice,
74-
const HardwareInfo &hwInfo) {
79+
void FrontEndProperties::setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch,
80+
int32_t engineInstancedDevice, const HardwareInfo &hwInfo) {
7581
clearIsDirty();
7682

7783
this->computeDispatchAllWalkerEnable.set(isCooperativeKernel);
@@ -90,7 +96,8 @@ void FrontEndProperties::setProperties(const FrontEndProperties &properties) {
9096
}
9197

9298
bool FrontEndProperties::isDirty() const {
93-
return disableOverdispatch.isDirty || disableEUFusion.isDirty || singleSliceDispatchCcsMode.isDirty || computeDispatchAllWalkerEnable.isDirty;
99+
return disableOverdispatch.isDirty || disableEUFusion.isDirty || singleSliceDispatchCcsMode.isDirty ||
100+
computeDispatchAllWalkerEnable.isDirty;
94101
}
95102

96103
void FrontEndProperties::clearIsDirty() {
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright (C) 2022 Intel Corporation
3+
*
4+
* SPDX-License-Identifier: MIT
5+
*
6+
*/
7+
8+
#include "shared/source/command_stream/stream_properties.h"
9+
10+
using namespace NEO;
11+
12+
void StateComputeModeProperties::setPropertiesExtra() {
13+
}
14+
void StateComputeModeProperties::setPropertiesExtra(const StateComputeModeProperties &properties) {
15+
}
16+
bool StateComputeModeProperties::isDirtyExtra() const {
17+
return false;
18+
}
19+
void StateComputeModeProperties::clearIsDirtyExtra() {
20+
}

0 commit comments

Comments
 (0)