/* * Copyright (C) 2022-2023 Intel Corporation * * SPDX-License-Identifier: MIT * */ #include "shared/source/helpers/cache_policy.h" #include "shared/source/helpers/cache_policy_base.inl" #include "shared/source/helpers/hw_mapper.h" namespace NEO { template const char *L1CachePolicyHelper::getCachingPolicyOptions(bool isDebuggerActive) { using GfxFamily = typename HwMapper::GfxFamily; static constexpr const char *writeBackCachingPolicy = "-cl-store-cache-default=7 -cl-load-cache-default=4"; static constexpr const char *writeByPassCachingPolicy = "-cl-store-cache-default=2 -cl-load-cache-default=4"; static constexpr const char *uncachedCachingPolicy = "-cl-store-cache-default=1 -cl-load-cache-default=1"; switch (L1CachePolicyHelper::getL1CachePolicy(isDebuggerActive)) { case GfxFamily::STATE_BASE_ADDRESS::L1_CACHE_POLICY_WBP: return writeByPassCachingPolicy; case GfxFamily::STATE_BASE_ADDRESS::L1_CACHE_POLICY_WB: return writeBackCachingPolicy; case GfxFamily::STATE_BASE_ADDRESS::L1_CACHE_POLICY_UC: return uncachedCachingPolicy; default: return nullptr; } } template uint32_t L1CachePolicyHelper::getDefaultL1CachePolicy(bool isDebuggerActive) { using GfxFamily = typename HwMapper::GfxFamily; return GfxFamily::STATE_BASE_ADDRESS::L1_CACHE_POLICY_WBP; } template uint32_t L1CachePolicyHelper::getUncachedL1CachePolicy() { using GfxFamily = typename HwMapper::GfxFamily; return GfxFamily::STATE_BASE_ADDRESS::L1_CACHE_POLICY_UC; } } // namespace NEO