Skip to content

Commit 2951f8a

Browse files
refactor: Update CFE_STATE
Refactors the CFE_STATE to align with the latest specification. Related-To: NEO-13147 Signed-off-by: Vysochyn, Illia <[email protected]>
1 parent 1135c10 commit 2951f8a

File tree

9 files changed

+37
-14
lines changed

9 files changed

+37
-14
lines changed

opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ HWTEST2_F(PreambleCfeStateXeHPAndLater, givenNotSetDebugFlagWhenPreambleCfeState
176176
EXPECT_EQ(overDispatchControl, static_cast<uint32_t>(cfeState->getOverDispatchControl()));
177177
}
178178

179-
HWTEST2_F(PreambleCfeStateXeHPAndLater, givenSetDebugFlagWhenPreambleCfeStateIsProgrammedThenCFEStateParamsHaveSetValue, IsAtLeastXeHpCore) {
179+
HWTEST2_F(PreambleCfeStateXeHPAndLater, givenSetDebugFlagWhenPreambleCfeStateIsProgrammedThenCFEStateParamsHaveSetValue, IsWithinXeHpCoreAndXe2HpgCore) {
180180
using CFE_STATE = typename FamilyType::CFE_STATE;
181181

182182
uint32_t expectedValue1 = 1u;

shared/source/generated/xe3_core/hw_cmds_generated_xe3_core.inl

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5989,10 +5989,10 @@ typedef struct tagCFE_STATE {
59895989
uint64_t Reserved_64 : BITFIELD_RANGE(32, 63);
59905990
// DWORD 3
59915991
uint32_t StackIdControl : BITFIELD_RANGE(0, 1);
5992-
uint32_t Reserved_98 : BITFIELD_RANGE(2, 9);
5993-
uint32_t LargeGrfThreadAdjustDisable : BITFIELD_RANGE(10, 10);
5992+
uint32_t DynamicStackIdControl : BITFIELD_RANGE(2, 2);
5993+
uint32_t Reserved_99 : BITFIELD_RANGE(3, 10);
59945994
uint32_t ComputeOverdispatchDisable : BITFIELD_RANGE(11, 11);
5995-
uint32_t Reserved_108 : BITFIELD_RANGE(12, 12);
5995+
uint32_t ComputeDispatchAllWalkerEnable : BITFIELD_RANGE(12, 12);
59965996
uint32_t SingleSliceDispatchCcsMode : BITFIELD_RANGE(13, 13);
59975997
uint32_t OverDispatchControl : BITFIELD_RANGE(14, 15);
59985998
uint32_t MaximumNumberOfThreads : BITFIELD_RANGE(16, 31);
@@ -6029,6 +6029,10 @@ typedef struct tagCFE_STATE {
60296029
STACK_ID_CONTROL_512 = 0x2,
60306030
STACK_ID_CONTROL_256 = 0x3,
60316031
} STACK_ID_CONTROL;
6032+
typedef enum tagDYNAMIC_STACK_ID_CONTROL {
6033+
DYNAMIC_STACK_ID_CONTROL_DISABLED = 0x0,
6034+
DYNAMIC_STACK_ID_CONTROL_ENABLED = 0x1,
6035+
} DYNAMIC_STACK_ID_CONTROL;
60326036
typedef enum tagOVER_DISPATCH_CONTROL {
60336037
OVER_DISPATCH_CONTROL_NONE = 0x0,
60346038
OVER_DISPATCH_CONTROL_LOW = 0x1,
@@ -6044,6 +6048,7 @@ typedef struct tagCFE_STATE {
60446048
TheStructure.Common.Pipeline = PIPELINE_COMPUTE;
60456049
TheStructure.Common.CommandType = COMMAND_TYPE_GFXPIPE;
60466050
TheStructure.Common.StackIdControl = STACK_ID_CONTROL_2K;
6051+
TheStructure.Common.DynamicStackIdControl = DYNAMIC_STACK_ID_CONTROL_ENABLED;
60476052
TheStructure.Common.OverDispatchControl = OVER_DISPATCH_CONTROL_NORMAL;
60486053
}
60496054
static tagCFE_STATE sInit() {
@@ -6078,7 +6083,7 @@ typedef struct tagCFE_STATE {
60786083
SCRATCHSPACEBUFFER_ALIGN_SIZE = 0x40,
60796084
} SCRATCHSPACEBUFFER;
60806085
inline void setScratchSpaceBuffer(const uint64_t value) {
6081-
UNRECOVERABLE_IF(value > 0xfffffc00L);
6086+
UNRECOVERABLE_IF(value > 0xfffffff);
60826087
TheStructure.Common.ScratchSpaceBuffer = static_cast<uint32_t>(value) >> SCRATCHSPACEBUFFER_BIT_SHIFT;
60836088
}
60846089
inline uint64_t getScratchSpaceBuffer() const {
@@ -6090,18 +6095,24 @@ typedef struct tagCFE_STATE {
60906095
inline STACK_ID_CONTROL getStackIdControl() const {
60916096
return static_cast<STACK_ID_CONTROL>(TheStructure.Common.StackIdControl);
60926097
}
6093-
inline void setLargeGRFThreadAdjustDisable(const bool value) {
6094-
TheStructure.Common.LargeGrfThreadAdjustDisable = value;
6098+
inline void setDynamicStackIdControl(const DYNAMIC_STACK_ID_CONTROL value) {
6099+
TheStructure.Common.DynamicStackIdControl = value;
60956100
}
6096-
inline bool getLargeGRFThreadAdjustDisable() const {
6097-
return TheStructure.Common.LargeGrfThreadAdjustDisable;
6101+
inline DYNAMIC_STACK_ID_CONTROL getDynamicStackIdControl() const {
6102+
return static_cast<DYNAMIC_STACK_ID_CONTROL>(TheStructure.Common.DynamicStackIdControl);
60986103
}
60996104
inline void setComputeOverdispatchDisable(const bool value) {
61006105
TheStructure.Common.ComputeOverdispatchDisable = value;
61016106
}
61026107
inline bool getComputeOverdispatchDisable() const {
61036108
return TheStructure.Common.ComputeOverdispatchDisable;
61046109
}
6110+
inline void setComputeDispatchAllWalkerEnable(const bool value) {
6111+
TheStructure.Common.ComputeDispatchAllWalkerEnable = value;
6112+
}
6113+
inline bool getComputeDispatchAllWalkerEnable() const {
6114+
return TheStructure.Common.ComputeDispatchAllWalkerEnable;
6115+
}
61056116
inline void setSingleSliceDispatchCcsMode(const bool value) {
61066117
TheStructure.Common.SingleSliceDispatchCcsMode = value;
61076118
}

shared/source/helpers/CMakeLists.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,12 @@ endif()
217217
if(SUPPORT_XE2_AND_LATER)
218218
list(APPEND NEO_CORE_HELPERS
219219
${CMAKE_CURRENT_SOURCE_DIR}/gfx_core_helper_xe2_and_later.inl
220-
${CMAKE_CURRENT_SOURCE_DIR}/preamble_xe2_hpg_and_later.inl
220+
)
221+
endif()
222+
223+
if(SUPPORT_XE2_CORE OR SUPPORT_XE_2HPG_CORE)
224+
list(APPEND NEO_CORE_HELPERS
225+
${CMAKE_CURRENT_SOURCE_DIR}/preamble_xe2_hpg.inl
221226
)
222227
endif()
223228

shared/source/helpers/preamble_xe2_hpg_and_later.inl renamed to shared/source/helpers/preamble_xe2_hpg.inl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ void PreambleHelper<Family>::appendProgramVFEState(const RootDeviceEnvironment &
5050
if (debugManager.flags.CFEStackIDControl.get() != -1) {
5151
command->setStackIdControl(static_cast<STACK_ID_CONTROL>(debugManager.flags.CFEStackIDControl.get()));
5252
}
53+
if (debugManager.flags.CFELargeGRFThreadAdjustDisable.get() != -1) {
54+
command->setLargeGRFThreadAdjustDisable(debugManager.flags.CFELargeGRFThreadAdjustDisable.get());
55+
}
5356
}
5457

5558
} // namespace NEO

shared/source/helpers/preamble_xehp_and_later.inl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,6 @@ void PreambleHelper<GfxFamily>::programVfeState(void *pVfeState,
6969
if (debugManager.flags.OverDispatchControl.get() != -1) {
7070
cmd.setOverDispatchControl(static_cast<typename CFE_STATE::OVER_DISPATCH_CONTROL>(debugManager.flags.OverDispatchControl.get()));
7171
}
72-
if (debugManager.flags.CFELargeGRFThreadAdjustDisable.get() != -1) {
73-
cmd.setLargeGRFThreadAdjustDisable(debugManager.flags.CFELargeGRFThreadAdjustDisable.get());
74-
}
7572

7673
*cfeState = cmd;
7774
}

shared/source/xe2_hpg_core/preamble_xe2_hpg_core.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ struct Xe2HpgCoreFamily;
1212
using Family = Xe2HpgCoreFamily;
1313
} // namespace NEO
1414

15-
#include "shared/source/helpers/preamble_xe2_hpg_and_later.inl"
15+
#include "shared/source/helpers/preamble_xe2_hpg.inl"
1616
#include "shared/source/helpers/preamble_xehp_and_later.inl"
1717

1818
namespace NEO {

shared/source/xe_hpc_core/preamble_xe_hpc_core.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ void PreambleHelper<Family>::appendProgramVFEState(const RootDeviceEnvironment &
3636
if (debugManager.flags.CFENumberOfWalkers.get() != -1) {
3737
command->setNumberOfWalkers(debugManager.flags.CFENumberOfWalkers.get());
3838
}
39+
if (debugManager.flags.CFELargeGRFThreadAdjustDisable.get() != -1) {
40+
command->setLargeGRFThreadAdjustDisable(debugManager.flags.CFELargeGRFThreadAdjustDisable.get());
41+
}
3942
}
4043

4144
template struct PreambleHelper<Family>;

shared/source/xe_hpg_core/preamble_xe_hpg_core.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ void PreambleHelper<Family>::appendProgramVFEState(const RootDeviceEnvironment &
3232
if (debugManager.flags.CFENumberOfWalkers.get() != -1) {
3333
command->setNumberOfWalkers(debugManager.flags.CFENumberOfWalkers.get());
3434
}
35+
if (debugManager.flags.CFELargeGRFThreadAdjustDisable.get() != -1) {
36+
command->setLargeGRFThreadAdjustDisable(debugManager.flags.CFELargeGRFThreadAdjustDisable.get());
37+
}
3538
}
3639

3740
template struct PreambleHelper<Family>;

shared/test/common/test_macros/header/common_matchers.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ using IsBeforeXeHpcCore = IsBeforeGfxCore<IGFX_XE_HPC_CORE>;
3232

3333
using IsAtLeastXe2HpgCore = IsAtLeastGfxCore<IGFX_XE2_HPG_CORE>;
3434
using IsAtMostXe2HpgCore = IsAtMostGfxCore<IGFX_XE2_HPG_CORE>;
35+
using IsWithinXeHpCoreAndXe2HpgCore = IsWithinGfxCore<IGFX_XE_HP_CORE, IGFX_XE2_HPG_CORE>;
3536

3637
using IsXeHpOrXeHpgCore = IsAnyGfxCores<IGFX_XE_HP_CORE, IGFX_XE_HPG_CORE>;
3738
using IsXeHpOrXeHpcCore = IsAnyGfxCores<IGFX_XE_HP_CORE, IGFX_XE_HPC_CORE>;

0 commit comments

Comments
 (0)