From 71c6bfc43965ed04687c259ad9b2275097051ea5 Mon Sep 17 00:00:00 2001 From: Zbigniew Zdanowicz Date: Wed, 13 Nov 2024 10:04:45 +0000 Subject: [PATCH] refactor: reorganize command encode classes 6/n - unify programBarrierEnable Signed-off-by: Zbigniew Zdanowicz --- .../command_encoder_xe_hpc_core_and_later.inl | 19 +++++++++++++++++++ .../command_encoder_xe2_hpg_core.cpp | 19 ------------------- .../command_encoder_xe_hpc_core.cpp | 19 ------------------- 3 files changed, 19 insertions(+), 38 deletions(-) diff --git a/shared/source/command_container/command_encoder_xe_hpc_core_and_later.inl b/shared/source/command_container/command_encoder_xe_hpc_core_and_later.inl index d0bf5a0dcf..388e41efb4 100644 --- a/shared/source/command_container/command_encoder_xe_hpc_core_and_later.inl +++ b/shared/source/command_container/command_encoder_xe_hpc_core_and_later.inl @@ -8,6 +8,7 @@ #include "shared/source/command_container/command_encoder.h" #include "shared/source/command_stream/linear_stream.h" #include "shared/source/memory_manager/graphics_allocation.h" +#include "shared/source/utilities/lookup_array.h" namespace NEO { @@ -37,4 +38,22 @@ inline void EncodeAtomic::setMiAtomicAddress(MI_ATOMIC &atomic, uint64_t atomic.setMemoryAddress(writeAddress); } +template +template +void EncodeDispatchKernel::programBarrierEnable(InterfaceDescriptorType &interfaceDescriptor, + uint32_t value, + const HardwareInfo &hwInfo) { + using BARRIERS = typename InterfaceDescriptorType::NUMBER_OF_BARRIERS; + static const LookupArray barrierLookupArray({{{0, BARRIERS::NUMBER_OF_BARRIERS_NONE}, + {1, BARRIERS::NUMBER_OF_BARRIERS_B1}, + {2, BARRIERS::NUMBER_OF_BARRIERS_B2}, + {4, BARRIERS::NUMBER_OF_BARRIERS_B4}, + {8, BARRIERS::NUMBER_OF_BARRIERS_B8}, + {16, BARRIERS::NUMBER_OF_BARRIERS_B16}, + {24, BARRIERS::NUMBER_OF_BARRIERS_B24}, + {32, BARRIERS::NUMBER_OF_BARRIERS_B32}}}); + BARRIERS numBarriers = barrierLookupArray.lookUp(value); + interfaceDescriptor.setNumberOfBarriers(numBarriers); +} + } // namespace NEO \ No newline at end of file diff --git a/shared/source/xe2_hpg_core/command_encoder_xe2_hpg_core.cpp b/shared/source/xe2_hpg_core/command_encoder_xe2_hpg_core.cpp index 72ad3ca96c..7d56906b15 100644 --- a/shared/source/xe2_hpg_core/command_encoder_xe2_hpg_core.cpp +++ b/shared/source/xe2_hpg_core/command_encoder_xe2_hpg_core.cpp @@ -17,7 +17,6 @@ #include "shared/source/helpers/constants.h" #include "shared/source/kernel/grf_config.h" #include "shared/source/release_helper/release_helper.h" -#include "shared/source/utilities/lookup_array.h" #include "shared/source/xe2_hpg_core/hw_cmds_base.h" using Family = NEO::Xe2HpgCoreFamily; @@ -128,24 +127,6 @@ void EncodeMemoryPrefetch::programMemoryPrefetch(LinearStream &commandSt } } -template <> -template <> -void EncodeDispatchKernel::programBarrierEnable(INTERFACE_DESCRIPTOR_DATA &interfaceDescriptor, - uint32_t value, - const HardwareInfo &hwInfo) { - using BARRIERS = INTERFACE_DESCRIPTOR_DATA::NUMBER_OF_BARRIERS; - static const LookupArray barrierLookupArray({{{0, BARRIERS::NUMBER_OF_BARRIERS_NONE}, - {1, BARRIERS::NUMBER_OF_BARRIERS_B1}, - {2, BARRIERS::NUMBER_OF_BARRIERS_B2}, - {4, BARRIERS::NUMBER_OF_BARRIERS_B4}, - {8, BARRIERS::NUMBER_OF_BARRIERS_B8}, - {16, BARRIERS::NUMBER_OF_BARRIERS_B16}, - {24, BARRIERS::NUMBER_OF_BARRIERS_B24}, - {32, BARRIERS::NUMBER_OF_BARRIERS_B32}}}); - BARRIERS numBarriers = barrierLookupArray.lookUp(value); - interfaceDescriptor.setNumberOfBarriers(numBarriers); -} - template <> void EncodeSurfaceState::setAuxParamsForMCSCCS(R_SURFACE_STATE *surfaceState, const ReleaseHelper *releaseHelper) { if (releaseHelper && releaseHelper->isAuxSurfaceModeOverrideRequired()) diff --git a/shared/source/xe_hpc_core/command_encoder_xe_hpc_core.cpp b/shared/source/xe_hpc_core/command_encoder_xe_hpc_core.cpp index 518bdfba34..ce3c6113ef 100644 --- a/shared/source/xe_hpc_core/command_encoder_xe_hpc_core.cpp +++ b/shared/source/xe_hpc_core/command_encoder_xe_hpc_core.cpp @@ -17,7 +17,6 @@ #include "shared/source/helpers/constants.h" #include "shared/source/kernel/grf_config.h" #include "shared/source/release_helper/release_helper.h" -#include "shared/source/utilities/lookup_array.h" #include "shared/source/xe_hpc_core/hw_cmds_xe_hpc_core_base.h" using Family = NEO::XeHpcCoreFamily; @@ -135,24 +134,6 @@ inline void EncodeMiFlushDW::adjust(MI_FLUSH_DW *miFlushDwCmd, const Pro miFlushDwCmd->setFlushLlc(1); } -template <> -template <> -void EncodeDispatchKernel::programBarrierEnable(INTERFACE_DESCRIPTOR_DATA &interfaceDescriptor, - uint32_t value, - const HardwareInfo &hwInfo) { - using BARRIERS = INTERFACE_DESCRIPTOR_DATA::NUMBER_OF_BARRIERS; - static const LookupArray barrierLookupArray({{{0, BARRIERS::NUMBER_OF_BARRIERS_NONE}, - {1, BARRIERS::NUMBER_OF_BARRIERS_B1}, - {2, BARRIERS::NUMBER_OF_BARRIERS_B2}, - {4, BARRIERS::NUMBER_OF_BARRIERS_B4}, - {8, BARRIERS::NUMBER_OF_BARRIERS_B8}, - {16, BARRIERS::NUMBER_OF_BARRIERS_B16}, - {24, BARRIERS::NUMBER_OF_BARRIERS_B24}, - {32, BARRIERS::NUMBER_OF_BARRIERS_B32}}}); - BARRIERS numBarriers = barrierLookupArray.lookUp(value); - interfaceDescriptor.setNumberOfBarriers(numBarriers); -} - template <> void EncodeDispatchKernel::adjustBindingTablePrefetch(INTERFACE_DESCRIPTOR_DATA &interfaceDescriptor, uint32_t samplerCount, uint32_t bindingTableEntryCount) { auto enablePrefetch = EncodeSurfaceState::doBindingTablePrefetch();