2021-10-26 15:25:20 +00:00
|
|
|
/*
|
2024-02-02 17:52:05 +00:00
|
|
|
* Copyright (C) 2021-2024 Intel Corporation
|
2021-10-26 15:25:20 +00:00
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
2023-03-14 15:24:23 +00:00
|
|
|
#include "shared/source/debug_settings/debug_settings_manager.h"
|
2022-06-27 14:58:29 +00:00
|
|
|
#include "shared/source/helpers/cache_policy.h"
|
2023-02-02 14:25:08 +00:00
|
|
|
#include "shared/source/helpers/compiler_product_helper.h"
|
2023-04-18 08:54:04 +00:00
|
|
|
#include "shared/source/helpers/hw_info.h"
|
2024-02-02 17:52:05 +00:00
|
|
|
#include "shared/source/helpers/hw_info_helper.h"
|
2024-03-28 13:47:16 +00:00
|
|
|
#include "shared/source/kernel/kernel_properties.h"
|
2024-10-14 18:23:13 +00:00
|
|
|
#include "shared/source/os_interface/os_inc_base.h"
|
2023-08-01 13:59:33 +00:00
|
|
|
#include "shared/source/release_helper/release_helper.h"
|
2021-10-26 15:25:20 +00:00
|
|
|
|
|
|
|
|
namespace NEO {
|
|
|
|
|
|
2024-10-01 10:09:33 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isMidThreadPreemptionSupported(const HardwareInfo &hwInfo) const {
|
|
|
|
|
return hwInfo.featureTable.flags.ftrWalkerMTP;
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-26 15:25:20 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
2022-11-30 14:28:39 +00:00
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isForceEmuInt32DivRemSPRequired() const {
|
2021-10-26 15:25:20 +00:00
|
|
|
return false;
|
|
|
|
|
}
|
2022-11-23 11:12:58 +00:00
|
|
|
|
2023-08-24 13:47:10 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
uint64_t CompilerProductHelperHw<gfxProduct>::getHwInfoConfig(const HardwareInfo &hwInfo) const {
|
|
|
|
|
return 0x0;
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-26 15:25:20 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
2022-11-30 14:28:39 +00:00
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isStatelessToStatefulBufferOffsetSupported() const {
|
2021-10-26 15:25:20 +00:00
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2022-06-20 12:39:11 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
2022-11-30 14:28:39 +00:00
|
|
|
const char *CompilerProductHelperHw<gfxProduct>::getCachingPolicyOptions(bool isDebuggerActive) const {
|
2022-08-23 11:48:18 +00:00
|
|
|
return L1CachePolicyHelper<gfxProduct>::getCachingPolicyOptions(isDebuggerActive);
|
2022-11-23 11:12:58 +00:00
|
|
|
}
|
|
|
|
|
|
2023-02-08 13:41:50 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
bool CompilerProductHelperHw<gfxProduct>::failBuildProgramWithStatefulAccessPreference() const {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2023-09-07 13:31:57 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
bool CompilerProductHelperHw<gfxProduct>::oclocEnforceZebinFormat() const {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 12:42:51 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
2023-04-13 14:16:49 +00:00
|
|
|
std::string CompilerProductHelperHw<gfxProduct>::getDeviceExtensions(const HardwareInfo &hwInfo, const ReleaseHelper *releaseHelper) const {
|
2023-03-15 10:35:43 +00:00
|
|
|
std::string extensions = "cl_khr_byte_addressable_store "
|
|
|
|
|
"cl_khr_device_uuid "
|
|
|
|
|
"cl_khr_fp16 "
|
|
|
|
|
"cl_khr_global_int32_base_atomics "
|
|
|
|
|
"cl_khr_global_int32_extended_atomics "
|
|
|
|
|
"cl_khr_icd "
|
|
|
|
|
"cl_khr_local_int32_base_atomics "
|
|
|
|
|
"cl_khr_local_int32_extended_atomics "
|
|
|
|
|
"cl_intel_command_queue_families "
|
|
|
|
|
"cl_intel_subgroups "
|
|
|
|
|
"cl_intel_required_subgroup_size "
|
|
|
|
|
"cl_intel_subgroups_short "
|
|
|
|
|
"cl_khr_spir "
|
|
|
|
|
"cl_intel_accelerator "
|
|
|
|
|
"cl_intel_driver_diagnostics "
|
|
|
|
|
"cl_khr_priority_hints "
|
|
|
|
|
"cl_khr_throttle_hints "
|
|
|
|
|
"cl_khr_create_command_queue "
|
|
|
|
|
"cl_intel_subgroups_char "
|
|
|
|
|
"cl_intel_subgroups_long "
|
|
|
|
|
"cl_khr_il_program "
|
|
|
|
|
"cl_intel_mem_force_host_memory "
|
|
|
|
|
"cl_khr_subgroup_extended_types "
|
|
|
|
|
"cl_khr_subgroup_non_uniform_vote "
|
|
|
|
|
"cl_khr_subgroup_ballot "
|
|
|
|
|
"cl_khr_subgroup_non_uniform_arithmetic "
|
|
|
|
|
"cl_khr_subgroup_shuffle "
|
|
|
|
|
"cl_khr_subgroup_shuffle_relative "
|
|
|
|
|
"cl_khr_subgroup_clustered_reduce "
|
|
|
|
|
"cl_intel_device_attribute_query "
|
2024-01-26 22:59:21 +00:00
|
|
|
"cl_khr_extended_bit_ops "
|
2023-03-15 10:35:43 +00:00
|
|
|
"cl_khr_suggested_local_work_size "
|
2023-04-06 14:04:45 +02:00
|
|
|
"cl_intel_split_work_group_barrier ";
|
2023-03-15 10:35:43 +00:00
|
|
|
|
|
|
|
|
auto supportsFp64 = hwInfo.capabilityTable.ftrSupportsFP64;
|
2023-11-30 08:32:25 +00:00
|
|
|
if (debugManager.flags.OverrideDefaultFP64Settings.get() != -1) {
|
|
|
|
|
supportsFp64 = debugManager.flags.OverrideDefaultFP64Settings.get();
|
2023-03-15 10:35:43 +00:00
|
|
|
}
|
|
|
|
|
if (supportsFp64) {
|
|
|
|
|
extensions += "cl_khr_fp64 ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (hwInfo.capabilityTable.supportsIndependentForwardProgress) {
|
|
|
|
|
extensions += "cl_khr_subgroups ";
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-14 15:24:23 +00:00
|
|
|
auto enabledClVersion = hwInfo.capabilityTable.clVersionSupport;
|
2023-11-30 08:32:25 +00:00
|
|
|
if (debugManager.flags.ForceOCLVersion.get() != 0) {
|
|
|
|
|
enabledClVersion = debugManager.flags.ForceOCLVersion.get();
|
2023-03-14 15:24:23 +00:00
|
|
|
}
|
2024-02-02 17:52:05 +00:00
|
|
|
auto ocl21FeaturesEnabled = HwInfoHelper::checkIfOcl21FeaturesEnabledOrEnforced(hwInfo);
|
|
|
|
|
|
2023-03-14 15:24:23 +00:00
|
|
|
if (ocl21FeaturesEnabled) {
|
|
|
|
|
|
|
|
|
|
if (hwInfo.capabilityTable.supportsMediaBlock) {
|
|
|
|
|
extensions += "cl_intel_spirv_media_block_io ";
|
|
|
|
|
}
|
|
|
|
|
extensions += "cl_intel_spirv_subgroups ";
|
2023-07-11 08:29:24 +02:00
|
|
|
extensions += "cl_khr_spirv_linkonce_odr ";
|
2023-03-14 15:24:23 +00:00
|
|
|
extensions += "cl_khr_spirv_no_integer_wrap_decoration ";
|
|
|
|
|
|
|
|
|
|
extensions += "cl_intel_unified_shared_memory ";
|
|
|
|
|
if (hwInfo.capabilityTable.supportsImages) {
|
|
|
|
|
extensions += "cl_khr_mipmap_image cl_khr_mipmap_image_writes ";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-03-15 14:00:12 +00:00
|
|
|
if (enabledClVersion >= 20) {
|
2023-03-14 15:24:23 +00:00
|
|
|
extensions += "cl_ext_float_atomics ";
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-30 08:32:25 +00:00
|
|
|
if (enabledClVersion >= 30 && debugManager.flags.ClKhrExternalMemoryExtension.get()) {
|
2023-05-02 13:46:25 +00:00
|
|
|
extensions += "cl_khr_external_memory ";
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-30 08:32:25 +00:00
|
|
|
if (debugManager.flags.EnableNV12.get() && hwInfo.capabilityTable.supportsImages) {
|
2023-03-14 15:24:23 +00:00
|
|
|
extensions += "cl_intel_planar_yuv ";
|
|
|
|
|
}
|
2023-11-30 08:32:25 +00:00
|
|
|
if (debugManager.flags.EnablePackedYuv.get() && hwInfo.capabilityTable.supportsImages) {
|
2023-03-14 15:24:23 +00:00
|
|
|
extensions += "cl_intel_packed_yuv ";
|
|
|
|
|
}
|
2023-03-15 10:35:43 +00:00
|
|
|
|
|
|
|
|
auto supportsVme = hwInfo.capabilityTable.supportsVme;
|
2023-11-30 08:32:25 +00:00
|
|
|
if (debugManager.flags.EnableIntelVme.get() != -1) {
|
|
|
|
|
supportsVme = !!debugManager.flags.EnableIntelVme.get();
|
2023-03-14 15:24:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (supportsVme) {
|
|
|
|
|
extensions += "cl_intel_motion_estimation cl_intel_device_side_avc_motion_estimation ";
|
2023-03-15 10:35:43 +00:00
|
|
|
if (ocl21FeaturesEnabled) {
|
|
|
|
|
extensions += "cl_intel_spirv_device_side_avc_motion_estimation ";
|
|
|
|
|
}
|
2023-03-14 15:24:23 +00:00
|
|
|
}
|
|
|
|
|
|
2023-03-15 10:35:43 +00:00
|
|
|
auto supportsAdvancedVme = hwInfo.capabilityTable.supportsVme;
|
2023-11-30 08:32:25 +00:00
|
|
|
if (debugManager.flags.EnableIntelAdvancedVme.get() != -1) {
|
|
|
|
|
supportsAdvancedVme = !!debugManager.flags.EnableIntelAdvancedVme.get();
|
2023-03-14 15:24:23 +00:00
|
|
|
}
|
|
|
|
|
if (supportsAdvancedVme) {
|
|
|
|
|
extensions += "cl_intel_advanced_motion_estimation ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (hwInfo.capabilityTable.ftrSupportsInteger64BitAtomics) {
|
|
|
|
|
extensions += "cl_khr_int64_base_atomics ";
|
|
|
|
|
extensions += "cl_khr_int64_extended_atomics ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (hwInfo.capabilityTable.supportsImages) {
|
|
|
|
|
extensions += "cl_khr_image2d_from_buffer ";
|
|
|
|
|
extensions += "cl_khr_depth_images ";
|
|
|
|
|
extensions += "cl_khr_3d_image_writes ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (hwInfo.capabilityTable.supportsMediaBlock) {
|
|
|
|
|
extensions += "cl_intel_media_block_io ";
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-01 15:03:43 +00:00
|
|
|
if (isBFloat16ConversionSupported(releaseHelper)) {
|
2023-03-14 15:24:23 +00:00
|
|
|
extensions += "cl_intel_bfloat16_conversions ";
|
|
|
|
|
}
|
2023-03-14 12:42:51 +00:00
|
|
|
|
|
|
|
|
if (isCreateBufferWithPropertiesSupported()) {
|
|
|
|
|
extensions += "cl_intel_create_buffer_with_properties ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isSubgroupLocalBlockIoSupported()) {
|
|
|
|
|
extensions += "cl_intel_subgroup_local_block_io ";
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-13 14:16:49 +00:00
|
|
|
if (isMatrixMultiplyAccumulateSupported(releaseHelper)) {
|
2023-03-14 12:42:51 +00:00
|
|
|
extensions += "cl_intel_subgroup_matrix_multiply_accumulate ";
|
2023-03-14 13:18:34 +00:00
|
|
|
}
|
|
|
|
|
|
2024-06-18 10:29:24 +02:00
|
|
|
if (isMatrixMultiplyAccumulateTF32Supported(hwInfo)) {
|
|
|
|
|
extensions += "cl_intel_subgroup_matrix_multiply_accumulate_tf32 ";
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-01 15:03:43 +00:00
|
|
|
if (isSplitMatrixMultiplyAccumulateSupported(releaseHelper)) {
|
2023-03-14 12:42:51 +00:00
|
|
|
extensions += "cl_intel_subgroup_split_matrix_multiply_accumulate ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isSubgroupNamedBarrierSupported()) {
|
|
|
|
|
extensions += "cl_khr_subgroup_named_barrier ";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (isSubgroupExtendedBlockReadSupported()) {
|
|
|
|
|
extensions += "cl_intel_subgroup_extended_block_read ";
|
|
|
|
|
}
|
2024-05-10 12:38:23 +02:00
|
|
|
if (isSubgroup2DBlockIOSupported()) {
|
|
|
|
|
extensions += "cl_intel_subgroup_2d_block_io ";
|
|
|
|
|
}
|
2024-06-12 07:35:30 +02:00
|
|
|
if (isSubgroupBufferPrefetchSupported()) {
|
|
|
|
|
extensions += "cl_intel_subgroup_buffer_prefetch ";
|
|
|
|
|
}
|
2022-07-04 12:03:50 +00:00
|
|
|
if (isDotIntegerProductExtensionSupported()) {
|
|
|
|
|
extensions += "cl_khr_integer_dot_product ";
|
|
|
|
|
}
|
2023-03-14 12:42:51 +00:00
|
|
|
return extensions;
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-16 16:48:56 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
StackVec<OclCVersion, 5> CompilerProductHelperHw<gfxProduct>::getDeviceOpenCLCVersions(const HardwareInfo &hwInfo, OclCVersion max) const {
|
|
|
|
|
if ((max.major == 0) && (max.minor != 0)) {
|
|
|
|
|
max.major = 1;
|
|
|
|
|
max.minor = 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
struct {
|
|
|
|
|
OclCVersion num;
|
|
|
|
|
bool supported;
|
|
|
|
|
} supportedVersionsMatrix[] = {
|
|
|
|
|
{OclCVersion{1, 0}, true},
|
|
|
|
|
{OclCVersion{1, 1}, true},
|
|
|
|
|
{OclCVersion{1, 2}, true},
|
|
|
|
|
{OclCVersion{3, 0}, hwInfo.capabilityTable.clVersionSupport == 30}};
|
|
|
|
|
|
|
|
|
|
StackVec<OclCVersion, 5> ret;
|
|
|
|
|
for (const auto &version : supportedVersionsMatrix) {
|
|
|
|
|
if (version.supported && ((0 == max.major) || (max >= version.num))) {
|
|
|
|
|
ret.push_back(version.num);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-03 06:55:35 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isHeaplessModeEnabled() const {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2024-03-07 16:50:57 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
2024-04-09 17:16:06 +00:00
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isHeaplessStateInitEnabled([[maybe_unused]] bool heaplessModeEnabled) const {
|
2024-03-07 16:50:57 +00:00
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2023-04-24 14:08:59 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
uint32_t CompilerProductHelperHw<gfxProduct>::matchRevisionIdWithProductConfig(HardwareIpVersion ipVersion, uint32_t revisionID) const {
|
|
|
|
|
return ipVersion.value;
|
|
|
|
|
}
|
2023-08-01 13:59:33 +00:00
|
|
|
|
|
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isMatrixMultiplyAccumulateSupported(const ReleaseHelper *releaseHelper) const {
|
|
|
|
|
if (releaseHelper) {
|
|
|
|
|
return releaseHelper->isMatrixMultiplyAccumulateSupported();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2023-08-01 15:03:43 +00:00
|
|
|
|
2023-12-19 06:28:01 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isDotProductAccumulateSystolicSupported(const ReleaseHelper *releaseHelper) const {
|
|
|
|
|
if (releaseHelper) {
|
|
|
|
|
return releaseHelper->isDotProductAccumulateSystolicSupported();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
2023-08-01 15:03:43 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isSplitMatrixMultiplyAccumulateSupported(const ReleaseHelper *releaseHelper) const {
|
|
|
|
|
if (releaseHelper) {
|
|
|
|
|
return releaseHelper->isSplitMatrixMultiplyAccumulateSupported();
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isBFloat16ConversionSupported(const ReleaseHelper *releaseHelper) const {
|
|
|
|
|
if (releaseHelper) {
|
|
|
|
|
return releaseHelper->isBFloat16ConversionSupported();
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2023-07-27 09:38:15 +00:00
|
|
|
|
|
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
void CompilerProductHelperHw<gfxProduct>::adjustHwInfoForIgc(HardwareInfo &hwInfo) const {
|
|
|
|
|
}
|
2024-03-28 13:47:16 +00:00
|
|
|
|
|
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
void CompilerProductHelperHw<gfxProduct>::getKernelFp16AtomicCapabilities(const ReleaseHelper *releaseHelper, uint32_t &fp16Caps) const {
|
|
|
|
|
fp16Caps = (0u | FpAtomicExtFlags::minMaxAtomicCaps | FpAtomicExtFlags::loadStoreAtomicCaps);
|
|
|
|
|
if (releaseHelper) {
|
|
|
|
|
fp16Caps |= releaseHelper->getAdditionalFp16Caps();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
void CompilerProductHelperHw<gfxProduct>::getKernelFp32AtomicCapabilities(uint32_t &fp32Caps) const {
|
|
|
|
|
fp32Caps = (0u | FpAtomicExtFlags::minMaxAtomicCaps | FpAtomicExtFlags::loadStoreAtomicCaps | FpAtomicExtFlags::addAtomicCaps);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
void CompilerProductHelperHw<gfxProduct>::getKernelFp64AtomicCapabilities(uint32_t &fp64Caps) const {
|
|
|
|
|
fp64Caps = (0u | FpAtomicExtFlags::minMaxAtomicCaps | FpAtomicExtFlags::loadStoreAtomicCaps | FpAtomicExtFlags::addAtomicCaps);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
void CompilerProductHelperHw<gfxProduct>::getKernelCapabilitiesExtra(const ReleaseHelper *releaseHelper, uint32_t &extraCaps) const {
|
|
|
|
|
if (releaseHelper) {
|
|
|
|
|
extraCaps |= releaseHelper->getAdditionalExtraCaps();
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-10-14 18:23:13 +00:00
|
|
|
|
2024-05-22 16:23:57 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
bool CompilerProductHelperHw<gfxProduct>::isBindlessAddressingDisabled(const ReleaseHelper *releaseHelper) const {
|
|
|
|
|
if (releaseHelper) {
|
|
|
|
|
return releaseHelper->isBindlessAddressingDisabled();
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-14 18:23:13 +00:00
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
const char *CompilerProductHelperHw<gfxProduct>::getCustomIgcLibraryName() const {
|
|
|
|
|
return nullptr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
const char *CompilerProductHelperHw<gfxProduct>::getFinalizerLibraryName() const {
|
|
|
|
|
return nullptr;
|
|
|
|
|
}
|
|
|
|
|
|
2021-10-26 15:25:20 +00:00
|
|
|
} // namespace NEO
|