From b1a9fb886f7feb2176fd1ce825a535b6da08f620 Mon Sep 17 00:00:00 2001 From: Filip Hazubski Date: Tue, 21 Jun 2022 14:53:02 +0000 Subject: [PATCH] Remove useChannelRedForUnusedShaderChannels helper function For CL_LUMINANCE images always force channel red. Signed-off-by: Filip Hazubski --- opencl/source/mem_obj/image.inl | 11 ++--------- .../unit_test/mem_obj/image_set_arg_tests.cpp | 16 ++++------------ shared/source/os_interface/hw_info_config.h | 2 -- .../hw_info_config_bdw_and_later.inl | 6 +----- .../hw_info_config_xehp_and_later.inl | 5 ----- shared/test/common/mocks/mock_hw_info_config.cpp | 6 ------ .../os_interface/hw_info_config_tests.cpp | 5 ----- 7 files changed, 7 insertions(+), 44 deletions(-) diff --git a/opencl/source/mem_obj/image.inl b/opencl/source/mem_obj/image.inl index 199969ee94..ed75718941 100644 --- a/opencl/source/mem_obj/image.inl +++ b/opencl/source/mem_obj/image.inl @@ -75,15 +75,8 @@ void ImageHw::setImageArg(void *memory, bool setAsMediaBlockImage, ui surfaceState->setShaderChannelSelectRed(static_cast(shaderChannelValue)); if (imgChannelOrder == CL_LUMINANCE) { - auto &hwInfoConfig = *HwInfoConfig::get(executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->getHardwareInfo()->platform.eProductFamily); - if (hwInfoConfig.useChannelRedForUnusedShaderChannels()) { - surfaceState->setShaderChannelSelectGreen(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_RED); - surfaceState->setShaderChannelSelectBlue(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_RED); - } else { - surfaceState->setShaderChannelSelectGreen(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_ZERO); - surfaceState->setShaderChannelSelectBlue(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_ZERO); - surfaceState->setShaderChannelSelectAlpha(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_ONE); - } + surfaceState->setShaderChannelSelectGreen(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_RED); + surfaceState->setShaderChannelSelectBlue(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_RED); } else { shaderChannelValue = ImageHw::getShaderChannelValue(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_GREEN, imgChannelOrder); surfaceState->setShaderChannelSelectGreen(static_cast(shaderChannelValue)); diff --git a/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp b/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp index bfa6a5a3ff..305a201857 100644 --- a/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp +++ b/opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp @@ -841,19 +841,11 @@ HWTEST_F(ImageSetArgTest, GivenImageWithClLuminanceFormatWhenSettingKernelArgThe auto surfaceState = reinterpret_cast( ptrOffset(pKernel->getSurfaceStateHeap(), pKernelInfo->argAsImg(0).bindful)); - auto &hwInfoConfig = *HwInfoConfig::get(defaultHwInfo->platform.eProductFamily); //for CL_LUMINANCE format we override channels to RED to be spec compliant. - if (hwInfoConfig.useChannelRedForUnusedShaderChannels()) { - EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_RED, surfaceState->getShaderChannelSelectRed()); - EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_RED, surfaceState->getShaderChannelSelectGreen()); - EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_RED, surfaceState->getShaderChannelSelectBlue()); - EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_ALPHA, surfaceState->getShaderChannelSelectAlpha()); - } else { - EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_RED, surfaceState->getShaderChannelSelectRed()); - EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_ZERO, surfaceState->getShaderChannelSelectGreen()); - EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_ZERO, surfaceState->getShaderChannelSelectBlue()); - EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_ONE, surfaceState->getShaderChannelSelectAlpha()); - } + EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_RED, surfaceState->getShaderChannelSelectRed()); + EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_RED, surfaceState->getShaderChannelSelectGreen()); + EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_RED, surfaceState->getShaderChannelSelectBlue()); + EXPECT_EQ(RENDER_SURFACE_STATE::SHADER_CHANNEL_SELECT_ALPHA, surfaceState->getShaderChannelSelectAlpha()); std::vector surfaces; pKernel->getResidency(surfaces); diff --git a/shared/source/os_interface/hw_info_config.h b/shared/source/os_interface/hw_info_config.h index 93ac7bdfff..b39f18e995 100644 --- a/shared/source/os_interface/hw_info_config.h +++ b/shared/source/os_interface/hw_info_config.h @@ -106,7 +106,6 @@ class HwInfoConfig { virtual bool isVmBindPatIndexProgrammingSupported() const = 0; virtual bool isBFloat16ConversionSupported(const HardwareInfo &hwInfo) const = 0; virtual bool isMatrixMultiplyAccumulateSupported(const HardwareInfo &hwInfo) const = 0; - virtual bool useChannelRedForUnusedShaderChannels() const = 0; virtual bool isIpSamplingSupported(const NEO::HardwareInfo &hwInfo) const = 0; virtual bool isGrfNumReportedWithScm() const = 0; virtual bool isThreadArbitrationPolicyReportedWithScm() const = 0; @@ -204,7 +203,6 @@ class HwInfoConfigHw : public HwInfoConfig { bool isVmBindPatIndexProgrammingSupported() const override; bool isBFloat16ConversionSupported(const HardwareInfo &hwInfo) const override; bool isMatrixMultiplyAccumulateSupported(const HardwareInfo &hwInfo) const override; - bool useChannelRedForUnusedShaderChannels() const override; bool isIpSamplingSupported(const NEO::HardwareInfo &hwInfo) const override; bool isGrfNumReportedWithScm() const override; bool isThreadArbitrationPolicyReportedWithScm() const override; diff --git a/shared/source/os_interface/hw_info_config_bdw_and_later.inl b/shared/source/os_interface/hw_info_config_bdw_and_later.inl index 51b72011b0..feb638d29c 100644 --- a/shared/source/os_interface/hw_info_config_bdw_and_later.inl +++ b/shared/source/os_interface/hw_info_config_bdw_and_later.inl @@ -65,13 +65,9 @@ bool HwInfoConfigHw::isBFloat16ConversionSupported(const HardwareInf return false; } -template -bool HwInfoConfigHw::useChannelRedForUnusedShaderChannels() const { - return true; -} - template bool HwInfoConfigHw::isMatrixMultiplyAccumulateSupported(const HardwareInfo &hwInfo) const { return false; } + } // namespace NEO diff --git a/shared/source/os_interface/hw_info_config_xehp_and_later.inl b/shared/source/os_interface/hw_info_config_xehp_and_later.inl index 40ad8ef69c..34e970aede 100644 --- a/shared/source/os_interface/hw_info_config_xehp_and_later.inl +++ b/shared/source/os_interface/hw_info_config_xehp_and_later.inl @@ -62,11 +62,6 @@ bool HwInfoConfigHw::isBFloat16ConversionSupported(const HardwareInf return true; } -template -bool HwInfoConfigHw::useChannelRedForUnusedShaderChannels() const { - return true; -} - template bool HwInfoConfigHw::isMatrixMultiplyAccumulateSupported(const HardwareInfo &hwInfo) const { return true; diff --git a/shared/test/common/mocks/mock_hw_info_config.cpp b/shared/test/common/mocks/mock_hw_info_config.cpp index c026ffc8a5..259889fdad 100644 --- a/shared/test/common/mocks/mock_hw_info_config.cpp +++ b/shared/test/common/mocks/mock_hw_info_config.cpp @@ -350,12 +350,6 @@ bool HwInfoConfigHw::isMatrixMultiplyAccumulateSupported(const Har } template <> -bool HwInfoConfigHw::useChannelRedForUnusedShaderChannels() const { - return false; -} - -template <> - void HwInfoConfigHw::updateScmCommand(void *const commandPtr, const StateComputeModeProperties &properties) { } diff --git a/shared/test/unit_test/os_interface/hw_info_config_tests.cpp b/shared/test/unit_test/os_interface/hw_info_config_tests.cpp index 7a5fbbc695..e53226f9cf 100644 --- a/shared/test/unit_test/os_interface/hw_info_config_tests.cpp +++ b/shared/test/unit_test/os_interface/hw_info_config_tests.cpp @@ -357,11 +357,6 @@ HWTEST_F(HwInfoConfigTest, givenHwInfoConfigWhenAskedIfPatIndexProgrammingSuppor EXPECT_FALSE(hwInfoConfig.isVmBindPatIndexProgrammingSupported()); } -HWTEST2_F(HwInfoConfigTest, givenHwInfoConfigWhenAskedIfUseChannelRedForUnusedShaderChannelsThenTrueIsReturned, IsAtMostXeHpcCore) { - const auto &hwInfoConfig = *HwInfoConfig::get(pInHwInfo.platform.eProductFamily); - EXPECT_TRUE(hwInfoConfig.useChannelRedForUnusedShaderChannels()); -} - HWTEST2_F(HwInfoConfigTest, givenHwInfoConfigWhenAskedIfIsTimestampWaitSupportedForEventsThenFalseIsReturned, IsNotXeHpgCore) { const auto &hwInfoConfig = *HwInfoConfig::get(pInHwInfo.platform.eProductFamily); EXPECT_FALSE(hwInfoConfig.isTimestampWaitSupportedForEvents());