Files
compute-runtime/shared/source/release_helper/release_helper_common_xe3_lpg.inl
Jaroslaw Warchulski 0012328c9a feature: add debug flag to control state cache invalidation WA
Also, temporarily disable this WA.

Related-To: NEO-16281, NEO-16405
Signed-off-by: Jaroslaw Warchulski <jaroslaw.warchulski@intel.com>
2025-11-04 15:58:09 +01:00

47 lines
2.1 KiB
C++

/*
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/debug_settings/debug_settings_manager.h"
#include "shared/source/helpers/string.h"
#include "shared/source/release_helper/release_helper.h"
#include "shared/source/xe3_core/hw_cmds_base.h"
namespace NEO {
template <>
const std::string ReleaseHelperHw<release>::getDeviceConfigString(uint32_t tileCount, uint32_t sliceCount, uint32_t subSliceCount, uint32_t euPerSubSliceCount) const {
char configString[16] = {0};
auto err = snprintf_s(configString, sizeof(configString), sizeof(configString), "%utx%ux%ux%u", tileCount, sliceCount, subSliceCount, euPerSubSliceCount);
UNRECOVERABLE_IF(err < 0);
return configString;
}
template <>
const SizeToPreferredSlmValueArray &ReleaseHelperHw<release>::getSizeToPreferredSlmValue(bool isHeapless) const {
using PREFERRED_SLM_ALLOCATION_SIZE = typename Xe3CoreFamily::INTERFACE_DESCRIPTOR_DATA::PREFERRED_SLM_ALLOCATION_SIZE;
static const SizeToPreferredSlmValueArray sizeToPreferredSlmValue = {{
{0, PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_SLM_ENCODES_0K},
{16 * MemoryConstants::kiloByte, PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_SLM_ENCODES_16K},
{32 * MemoryConstants::kiloByte, PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_SLM_ENCODES_32K},
{64 * MemoryConstants::kiloByte, PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_SLM_ENCODES_64K},
{96 * MemoryConstants::kiloByte, PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_SLM_ENCODES_96K},
{std::numeric_limits<uint32_t>::max(), PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_SLM_ENCODES_128K},
}};
return sizeToPreferredSlmValue;
}
template <>
bool ReleaseHelperHw<release>::isStateCacheInvalidationWaRequired() const {
auto enableStateCacheInvalidationWa = debugManager.flags.EnableStateCacheInvalidationWa.get();
if (enableStateCacheInvalidationWa != -1) {
return enableStateCacheInvalidationWa;
}
return true;
}
} // namespace NEO