Files
compute-runtime/shared/source/release_helper/release_helper_2002.cpp
Jaroslaw Warchulski 1ff8a3b4a0 refactor: correct naming of release helper xe2
Signed-off-by: Jaroslaw Warchulski <jaroslaw.warchulski@intel.com>
2025-11-21 12:30:05 +01:00

81 lines
2.7 KiB
C++

/*
* Copyright (C) 2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/release_helper/release_helper.h"
#include "shared/source/release_helper/release_helper_base.inl"
#include "shared/source/xe2_hpg_core/hw_cmds_base.h"
#include "release_definitions.h"
namespace NEO {
constexpr auto release = ReleaseType::release2002;
template <>
inline bool ReleaseHelperHw<release>::isAuxSurfaceModeOverrideRequired() const {
return true;
}
template <>
bool ReleaseHelperHw<release>::isLocalOnlyAllowed() const {
return false;
}
template <>
bool ReleaseHelperHw<release>::isBindlessAddressingDisabled() const {
return false;
}
template <>
const SizeToPreferredSlmValueArray &ReleaseHelperHw<release>::getSizeToPreferredSlmValue(bool isHeapless) const {
using PREFERRED_SLM_ALLOCATION_SIZE = typename Xe2HpgCoreFamily::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},
{128 * MemoryConstants::kiloByte, PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_SLM_ENCODES_128K},
{std::numeric_limits<uint32_t>::max(), PREFERRED_SLM_ALLOCATION_SIZE::PREFERRED_SLM_ALLOCATION_SIZE_SLM_ENCODES_160K},
}};
return sizeToPreferredSlmValue;
}
template <>
bool ReleaseHelperHw<release>::programmAdditionalStallPriorToBarrierWithTimestamp() const {
return true;
}
template <>
bool ReleaseHelperHw<release>::shouldQueryPeerAccess() const {
return true;
}
template <>
bool ReleaseHelperHw<release>::isUsmCompressionSupportedOnPeerAccess() const {
return false;
}
template <>
bool ReleaseHelperHw<release>::isSingleDispatchRequiredForMultiCCS() const {
return true;
}
template <>
bool ReleaseHelperHw<release>::isStateCacheInvalidationWaRequired() const {
auto enableStateCacheInvalidationWa = debugManager.flags.EnableStateCacheInvalidationWa.get();
if (enableStateCacheInvalidationWa != -1) {
return enableStateCacheInvalidationWa;
}
return true;
}
} // namespace NEO
#include "shared/source/release_helper/release_helper_common_xe2.inl"
template class NEO::ReleaseHelperHw<NEO::release>;