From 4786f1a6c2910207b9f544ef3a087c4cb04280dc Mon Sep 17 00:00:00 2001 From: Bartosz Dunajski Date: Fri, 3 Apr 2020 10:50:54 +0200 Subject: [PATCH] Refactor HardwareCommandsHelper Change-Id: I15dcbf445565228a0e520b25265a1752ead70a28 Signed-off-by: Bartosz Dunajski --- opencl/source/helpers/hardware_commands_helper.h | 8 ++++++-- .../source/helpers/hardware_commands_helper_base.inl | 3 ++- .../helpers/hardware_commands_helper_bdw_plus.inl | 11 +++++------ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/opencl/source/helpers/hardware_commands_helper.h b/opencl/source/helpers/hardware_commands_helper.h index 365090c1dc..d4db090559 100644 --- a/opencl/source/helpers/hardware_commands_helper.h +++ b/opencl/source/helpers/hardware_commands_helper.h @@ -42,11 +42,15 @@ struct HardwareCommandsHelper : public PerThreadDataHelper { uint64_t offsetInterfaceDescriptor, INTERFACE_DESCRIPTOR_DATA *inlineInterfaceDescriptor); - static void setAdditionalInfo( + static void setGrfInfo( INTERFACE_DESCRIPTOR_DATA *pInterfaceDescriptor, const Kernel &kernel, const size_t &sizeCrossThreadData, - const size_t &sizePerThreadData, + const size_t &sizePerThreadData); + + static void setAdditionalInfo( + INTERFACE_DESCRIPTOR_DATA *pInterfaceDescriptor, + const Kernel &kernel, const uint32_t threadsPerThreadGroup); inline static uint32_t additionalSizeRequiredDsh(); diff --git a/opencl/source/helpers/hardware_commands_helper_base.inl b/opencl/source/helpers/hardware_commands_helper_base.inl index c17f5ef091..5d325ce138 100644 --- a/opencl/source/helpers/hardware_commands_helper_base.inl +++ b/opencl/source/helpers/hardware_commands_helper_base.inl @@ -194,7 +194,8 @@ size_t HardwareCommandsHelper::sendInterfaceDescriptorData( pInterfaceDescriptor->setDenormMode(INTERFACE_DESCRIPTOR_DATA::DENORM_MODE_SETBYKERNEL); - setAdditionalInfo(pInterfaceDescriptor, kernel, sizeCrossThreadData, sizePerThreadData, threadsPerThreadGroup); + setGrfInfo(pInterfaceDescriptor, kernel, sizeCrossThreadData, sizePerThreadData); + setAdditionalInfo(pInterfaceDescriptor, kernel, threadsPerThreadGroup); pInterfaceDescriptor->setBindingTablePointer(static_cast(bindingTablePointer)); diff --git a/opencl/source/helpers/hardware_commands_helper_bdw_plus.inl b/opencl/source/helpers/hardware_commands_helper_bdw_plus.inl index fbc626f931..52c8708390 100644 --- a/opencl/source/helpers/hardware_commands_helper_bdw_plus.inl +++ b/opencl/source/helpers/hardware_commands_helper_bdw_plus.inl @@ -25,12 +25,8 @@ typename HardwareCommandsHelper::INTERFACE_DESCRIPTOR_DATA *HardwareC } template -void HardwareCommandsHelper::setAdditionalInfo( - INTERFACE_DESCRIPTOR_DATA *pInterfaceDescriptor, - const Kernel &kernel, - const size_t &sizeCrossThreadData, - const size_t &sizePerThreadData, - const uint32_t threadsPerThreadGroup) { +void HardwareCommandsHelper::setGrfInfo(INTERFACE_DESCRIPTOR_DATA *pInterfaceDescriptor, const Kernel &kernel, + const size_t &sizeCrossThreadData, const size_t &sizePerThreadData) { auto grfSize = sizeof(typename GfxFamily::GRF); DEBUG_BREAK_IF((sizeCrossThreadData % grfSize) != 0); auto numGrfCrossThreadData = static_cast(sizeCrossThreadData / grfSize); @@ -45,6 +41,9 @@ void HardwareCommandsHelper::setAdditionalInfo( pInterfaceDescriptor->setConstantIndirectUrbEntryReadLength(numGrfPerThreadData); } +template +void HardwareCommandsHelper::setAdditionalInfo(INTERFACE_DESCRIPTOR_DATA *pInterfaceDescriptor, const Kernel &kernel, const uint32_t threadsPerThreadGroup) {} + template uint32_t HardwareCommandsHelper::additionalSizeRequiredDsh() { return sizeof(INTERFACE_DESCRIPTOR_DATA);