Use static isWorkaroundRequired in isOffsetToSkipSetFFIDGPWARequired function

Related-To: NEO-6853
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
This commit is contained in:
Kamil Kopryk
2022-12-20 13:22:42 +00:00
committed by Compute-Runtime-Automation
parent 13474069fb
commit d35f4249cd
7 changed files with 17 additions and 9 deletions

View File

@@ -272,4 +272,8 @@ const GfxCoreHelper &ClDevice::getGfxCoreHelper() const {
return device.getGfxCoreHelper();
}
const ProductHelper &ClDevice::getProductHelper() const {
return device.getProductHelper();
}
} // namespace NEO

View File

@@ -38,6 +38,7 @@ struct HardwareInfo;
struct RootDeviceEnvironment;
struct SelectorCopyEngine;
class GfxCoreHelper;
class ProductHelper;
template <>
struct OpenCLObjectMapper<_cl_device_id> {
@@ -127,6 +128,7 @@ class ClDevice : public BaseObject<_cl_device_id> {
void getQueueFamilyName(char *outputName, EngineGroupType type);
Platform *getPlatform() const;
const GfxCoreHelper &getGfxCoreHelper() const;
const ProductHelper &getProductHelper() const;
protected:
void initializeCaps();

View File

@@ -2087,9 +2087,10 @@ uint64_t Kernel::getKernelStartAddress(const bool localIdsGenerationByRuntime, c
kernelStartOffset += getStartOffset();
auto &hardwareInfo = getHardwareInfo();
auto &gfxCoreHelper = getDevice().getGfxCoreHelper();
const auto &gfxCoreHelper = getDevice().getGfxCoreHelper();
const auto &productHelper = getDevice().getProductHelper();
if (isCssUsed && gfxCoreHelper.isOffsetToSkipSetFFIDGPWARequired(hardwareInfo)) {
if (isCssUsed && gfxCoreHelper.isOffsetToSkipSetFFIDGPWARequired(hardwareInfo, productHelper)) {
kernelStartOffset += kernelInfo.kernelDescriptor.entryPoints.skipSetFFIDGP;
}

View File

@@ -39,8 +39,8 @@ size_t GfxCoreHelperHw<Family>::getMax3dImageWidthOrHeight() const {
}
template <>
bool GfxCoreHelperHw<Family>::isOffsetToSkipSetFFIDGPWARequired(const HardwareInfo &hwInfo) const {
return isWorkaroundRequired(REVISION_A0, REVISION_B, hwInfo);
bool GfxCoreHelperHw<Family>::isOffsetToSkipSetFFIDGPWARequired(const HardwareInfo &hwInfo, const ProductHelper &productHelper) const {
return GfxCoreHelper::isWorkaroundRequired(REVISION_A0, REVISION_B, hwInfo, productHelper);
}
template <>

View File

@@ -98,7 +98,7 @@ class GfxCoreHelper {
virtual bool isAdditionalFeatureFlagRequired(const FeatureTable *featureTable) const = 0;
virtual uint32_t getMinimalSIMDSize() const = 0;
virtual bool isWorkaroundRequired(uint32_t lowestSteppingWithBug, uint32_t steppingWithFix, const HardwareInfo &hwInfo) const = 0;
virtual bool isOffsetToSkipSetFFIDGPWARequired(const HardwareInfo &hwInfo) const = 0;
virtual bool isOffsetToSkipSetFFIDGPWARequired(const HardwareInfo &hwInfo, const ProductHelper &productHelper) const = 0;
virtual bool isFusedEuDispatchEnabled(const HardwareInfo &hwInfo, bool disableEUFusionForKernel) const = 0;
virtual uint64_t getGpuTimeStampInNS(uint64_t timeStamp, double frequency) const = 0;
virtual uint32_t getBindlessSurfaceExtendedMessageDescriptorValue(uint32_t surfStateOffset) const = 0;
@@ -279,7 +279,7 @@ class GfxCoreHelperHw : public GfxCoreHelper {
bool isWorkaroundRequired(uint32_t lowestSteppingWithBug, uint32_t steppingWithFix, const HardwareInfo &hwInfo) const override;
bool isOffsetToSkipSetFFIDGPWARequired(const HardwareInfo &hwInfo) const override;
bool isOffsetToSkipSetFFIDGPWARequired(const HardwareInfo &hwInfo, const ProductHelper &productHelper) const override;
bool isFusedEuDispatchEnabled(const HardwareInfo &hwInfo, bool disableEUFusionForKernel) const override;

View File

@@ -444,7 +444,7 @@ uint8_t GfxCoreHelperHw<GfxFamily>::getBarriersCountFromHasBarriers(uint8_t hasB
}
template <typename GfxFamily>
inline bool GfxCoreHelperHw<GfxFamily>::isOffsetToSkipSetFFIDGPWARequired(const HardwareInfo &hwInfo) const {
inline bool GfxCoreHelperHw<GfxFamily>::isOffsetToSkipSetFFIDGPWARequired(const HardwareInfo &hwInfo, const ProductHelper &productHelper) const {
return false;
}

View File

@@ -898,8 +898,9 @@ HWTEST_F(GfxCoreHelperTest, givenDefaultGfxCoreHelperHwWhenIsOffsetToSkipSetFFID
if (hardwareInfo.platform.eRenderCoreFamily == IGFX_GEN12LP_CORE) {
GTEST_SKIP();
}
auto &gfxCoreHelper = GfxCoreHelper::get(hardwareInfo.platform.eRenderCoreFamily);
EXPECT_FALSE(gfxCoreHelper.isOffsetToSkipSetFFIDGPWARequired(hardwareInfo));
const auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
const auto &productHelper = getHelper<ProductHelper>();
EXPECT_FALSE(gfxCoreHelper.isOffsetToSkipSetFFIDGPWARequired(hardwareInfo, productHelper));
}
HWTEST_F(GfxCoreHelperTest, givenDefaultGfxCoreHelperHwWhenIsForceDefaultRCSEngineWARequiredCalledThenFalseIsReturned) {