mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-19 06:24:51 +08:00
refactor: Update CFE_STATE
Refactors the CFE_STATE to align with the latest specification. Related-To: NEO-13147 Signed-off-by: Vysochyn, Illia <illia.vysochyn@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
1135c1033e
commit
2951f8a411
@@ -176,7 +176,7 @@ HWTEST2_F(PreambleCfeStateXeHPAndLater, givenNotSetDebugFlagWhenPreambleCfeState
|
||||
EXPECT_EQ(overDispatchControl, static_cast<uint32_t>(cfeState->getOverDispatchControl()));
|
||||
}
|
||||
|
||||
HWTEST2_F(PreambleCfeStateXeHPAndLater, givenSetDebugFlagWhenPreambleCfeStateIsProgrammedThenCFEStateParamsHaveSetValue, IsAtLeastXeHpCore) {
|
||||
HWTEST2_F(PreambleCfeStateXeHPAndLater, givenSetDebugFlagWhenPreambleCfeStateIsProgrammedThenCFEStateParamsHaveSetValue, IsWithinXeHpCoreAndXe2HpgCore) {
|
||||
using CFE_STATE = typename FamilyType::CFE_STATE;
|
||||
|
||||
uint32_t expectedValue1 = 1u;
|
||||
|
||||
@@ -5989,10 +5989,10 @@ typedef struct tagCFE_STATE {
|
||||
uint64_t Reserved_64 : BITFIELD_RANGE(32, 63);
|
||||
// DWORD 3
|
||||
uint32_t StackIdControl : BITFIELD_RANGE(0, 1);
|
||||
uint32_t Reserved_98 : BITFIELD_RANGE(2, 9);
|
||||
uint32_t LargeGrfThreadAdjustDisable : BITFIELD_RANGE(10, 10);
|
||||
uint32_t DynamicStackIdControl : BITFIELD_RANGE(2, 2);
|
||||
uint32_t Reserved_99 : BITFIELD_RANGE(3, 10);
|
||||
uint32_t ComputeOverdispatchDisable : BITFIELD_RANGE(11, 11);
|
||||
uint32_t Reserved_108 : BITFIELD_RANGE(12, 12);
|
||||
uint32_t ComputeDispatchAllWalkerEnable : BITFIELD_RANGE(12, 12);
|
||||
uint32_t SingleSliceDispatchCcsMode : BITFIELD_RANGE(13, 13);
|
||||
uint32_t OverDispatchControl : BITFIELD_RANGE(14, 15);
|
||||
uint32_t MaximumNumberOfThreads : BITFIELD_RANGE(16, 31);
|
||||
@@ -6029,6 +6029,10 @@ typedef struct tagCFE_STATE {
|
||||
STACK_ID_CONTROL_512 = 0x2,
|
||||
STACK_ID_CONTROL_256 = 0x3,
|
||||
} STACK_ID_CONTROL;
|
||||
typedef enum tagDYNAMIC_STACK_ID_CONTROL {
|
||||
DYNAMIC_STACK_ID_CONTROL_DISABLED = 0x0,
|
||||
DYNAMIC_STACK_ID_CONTROL_ENABLED = 0x1,
|
||||
} DYNAMIC_STACK_ID_CONTROL;
|
||||
typedef enum tagOVER_DISPATCH_CONTROL {
|
||||
OVER_DISPATCH_CONTROL_NONE = 0x0,
|
||||
OVER_DISPATCH_CONTROL_LOW = 0x1,
|
||||
@@ -6044,6 +6048,7 @@ typedef struct tagCFE_STATE {
|
||||
TheStructure.Common.Pipeline = PIPELINE_COMPUTE;
|
||||
TheStructure.Common.CommandType = COMMAND_TYPE_GFXPIPE;
|
||||
TheStructure.Common.StackIdControl = STACK_ID_CONTROL_2K;
|
||||
TheStructure.Common.DynamicStackIdControl = DYNAMIC_STACK_ID_CONTROL_ENABLED;
|
||||
TheStructure.Common.OverDispatchControl = OVER_DISPATCH_CONTROL_NORMAL;
|
||||
}
|
||||
static tagCFE_STATE sInit() {
|
||||
@@ -6078,7 +6083,7 @@ typedef struct tagCFE_STATE {
|
||||
SCRATCHSPACEBUFFER_ALIGN_SIZE = 0x40,
|
||||
} SCRATCHSPACEBUFFER;
|
||||
inline void setScratchSpaceBuffer(const uint64_t value) {
|
||||
UNRECOVERABLE_IF(value > 0xfffffc00L);
|
||||
UNRECOVERABLE_IF(value > 0xfffffff);
|
||||
TheStructure.Common.ScratchSpaceBuffer = static_cast<uint32_t>(value) >> SCRATCHSPACEBUFFER_BIT_SHIFT;
|
||||
}
|
||||
inline uint64_t getScratchSpaceBuffer() const {
|
||||
@@ -6090,11 +6095,11 @@ typedef struct tagCFE_STATE {
|
||||
inline STACK_ID_CONTROL getStackIdControl() const {
|
||||
return static_cast<STACK_ID_CONTROL>(TheStructure.Common.StackIdControl);
|
||||
}
|
||||
inline void setLargeGRFThreadAdjustDisable(const bool value) {
|
||||
TheStructure.Common.LargeGrfThreadAdjustDisable = value;
|
||||
inline void setDynamicStackIdControl(const DYNAMIC_STACK_ID_CONTROL value) {
|
||||
TheStructure.Common.DynamicStackIdControl = value;
|
||||
}
|
||||
inline bool getLargeGRFThreadAdjustDisable() const {
|
||||
return TheStructure.Common.LargeGrfThreadAdjustDisable;
|
||||
inline DYNAMIC_STACK_ID_CONTROL getDynamicStackIdControl() const {
|
||||
return static_cast<DYNAMIC_STACK_ID_CONTROL>(TheStructure.Common.DynamicStackIdControl);
|
||||
}
|
||||
inline void setComputeOverdispatchDisable(const bool value) {
|
||||
TheStructure.Common.ComputeOverdispatchDisable = value;
|
||||
@@ -6102,6 +6107,12 @@ typedef struct tagCFE_STATE {
|
||||
inline bool getComputeOverdispatchDisable() const {
|
||||
return TheStructure.Common.ComputeOverdispatchDisable;
|
||||
}
|
||||
inline void setComputeDispatchAllWalkerEnable(const bool value) {
|
||||
TheStructure.Common.ComputeDispatchAllWalkerEnable = value;
|
||||
}
|
||||
inline bool getComputeDispatchAllWalkerEnable() const {
|
||||
return TheStructure.Common.ComputeDispatchAllWalkerEnable;
|
||||
}
|
||||
inline void setSingleSliceDispatchCcsMode(const bool value) {
|
||||
TheStructure.Common.SingleSliceDispatchCcsMode = value;
|
||||
}
|
||||
|
||||
@@ -217,7 +217,12 @@ endif()
|
||||
if(SUPPORT_XE2_AND_LATER)
|
||||
list(APPEND NEO_CORE_HELPERS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/gfx_core_helper_xe2_and_later.inl
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/preamble_xe2_hpg_and_later.inl
|
||||
)
|
||||
endif()
|
||||
|
||||
if(SUPPORT_XE2_CORE OR SUPPORT_XE_2HPG_CORE)
|
||||
list(APPEND NEO_CORE_HELPERS
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/preamble_xe2_hpg.inl
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
@@ -50,6 +50,9 @@ void PreambleHelper<Family>::appendProgramVFEState(const RootDeviceEnvironment &
|
||||
if (debugManager.flags.CFEStackIDControl.get() != -1) {
|
||||
command->setStackIdControl(static_cast<STACK_ID_CONTROL>(debugManager.flags.CFEStackIDControl.get()));
|
||||
}
|
||||
if (debugManager.flags.CFELargeGRFThreadAdjustDisable.get() != -1) {
|
||||
command->setLargeGRFThreadAdjustDisable(debugManager.flags.CFELargeGRFThreadAdjustDisable.get());
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
@@ -69,9 +69,6 @@ void PreambleHelper<GfxFamily>::programVfeState(void *pVfeState,
|
||||
if (debugManager.flags.OverDispatchControl.get() != -1) {
|
||||
cmd.setOverDispatchControl(static_cast<typename CFE_STATE::OVER_DISPATCH_CONTROL>(debugManager.flags.OverDispatchControl.get()));
|
||||
}
|
||||
if (debugManager.flags.CFELargeGRFThreadAdjustDisable.get() != -1) {
|
||||
cmd.setLargeGRFThreadAdjustDisable(debugManager.flags.CFELargeGRFThreadAdjustDisable.get());
|
||||
}
|
||||
|
||||
*cfeState = cmd;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ struct Xe2HpgCoreFamily;
|
||||
using Family = Xe2HpgCoreFamily;
|
||||
} // namespace NEO
|
||||
|
||||
#include "shared/source/helpers/preamble_xe2_hpg_and_later.inl"
|
||||
#include "shared/source/helpers/preamble_xe2_hpg.inl"
|
||||
#include "shared/source/helpers/preamble_xehp_and_later.inl"
|
||||
|
||||
namespace NEO {
|
||||
|
||||
@@ -36,6 +36,9 @@ void PreambleHelper<Family>::appendProgramVFEState(const RootDeviceEnvironment &
|
||||
if (debugManager.flags.CFENumberOfWalkers.get() != -1) {
|
||||
command->setNumberOfWalkers(debugManager.flags.CFENumberOfWalkers.get());
|
||||
}
|
||||
if (debugManager.flags.CFELargeGRFThreadAdjustDisable.get() != -1) {
|
||||
command->setLargeGRFThreadAdjustDisable(debugManager.flags.CFELargeGRFThreadAdjustDisable.get());
|
||||
}
|
||||
}
|
||||
|
||||
template struct PreambleHelper<Family>;
|
||||
|
||||
@@ -32,6 +32,9 @@ void PreambleHelper<Family>::appendProgramVFEState(const RootDeviceEnvironment &
|
||||
if (debugManager.flags.CFENumberOfWalkers.get() != -1) {
|
||||
command->setNumberOfWalkers(debugManager.flags.CFENumberOfWalkers.get());
|
||||
}
|
||||
if (debugManager.flags.CFELargeGRFThreadAdjustDisable.get() != -1) {
|
||||
command->setLargeGRFThreadAdjustDisable(debugManager.flags.CFELargeGRFThreadAdjustDisable.get());
|
||||
}
|
||||
}
|
||||
|
||||
template struct PreambleHelper<Family>;
|
||||
|
||||
@@ -32,6 +32,7 @@ using IsBeforeXeHpcCore = IsBeforeGfxCore<IGFX_XE_HPC_CORE>;
|
||||
|
||||
using IsAtLeastXe2HpgCore = IsAtLeastGfxCore<IGFX_XE2_HPG_CORE>;
|
||||
using IsAtMostXe2HpgCore = IsAtMostGfxCore<IGFX_XE2_HPG_CORE>;
|
||||
using IsWithinXeHpCoreAndXe2HpgCore = IsWithinGfxCore<IGFX_XE_HP_CORE, IGFX_XE2_HPG_CORE>;
|
||||
|
||||
using IsXeHpOrXeHpgCore = IsAnyGfxCores<IGFX_XE_HP_CORE, IGFX_XE_HPG_CORE>;
|
||||
using IsXeHpOrXeHpcCore = IsAnyGfxCores<IGFX_XE_HP_CORE, IGFX_XE_HPC_CORE>;
|
||||
|
||||
Reference in New Issue
Block a user