2021-08-30 22:34:53 +08:00
|
|
|
/*
|
2025-01-25 00:39:50 +08:00
|
|
|
* Copyright (C) 2021-2025 Intel Corporation
|
2021-08-30 22:34:53 +08:00
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2021-12-07 19:22:25 +08:00
|
|
|
#include "shared/source/aub_mem_dump/aub_mem_dump.h"
|
2022-07-14 18:37:55 +08:00
|
|
|
#include "shared/source/helpers/cache_policy.h"
|
2021-09-14 19:41:01 +08:00
|
|
|
#include "shared/source/helpers/constants.h"
|
2023-02-06 17:05:43 +08:00
|
|
|
#include "shared/source/helpers/hw_info.h"
|
2023-03-08 17:30:38 +08:00
|
|
|
#include "shared/source/helpers/hw_mapper.h"
|
2022-11-29 03:00:39 +08:00
|
|
|
#include "shared/source/helpers/local_memory_access_modes.h"
|
2023-03-10 20:28:11 +08:00
|
|
|
#include "shared/source/os_interface/product_helper.h"
|
2023-02-06 17:05:43 +08:00
|
|
|
#include "shared/source/os_interface/product_helper_hw.h"
|
2023-09-23 00:06:50 +08:00
|
|
|
#include "shared/source/release_helper/release_helper.h"
|
2021-08-30 22:34:53 +08:00
|
|
|
|
2021-09-14 19:41:01 +08:00
|
|
|
namespace NEO {
|
2021-08-30 22:34:53 +08:00
|
|
|
|
|
|
|
template <>
|
2023-01-02 20:19:09 +08:00
|
|
|
void ProductHelperHw<IGFX_UNKNOWN>::adjustSamplerState(void *sampler, const HardwareInfo &hwInfo) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::getMaxThreadsForWorkgroupInDSSOrSS(const HardwareInfo &hwInfo, uint32_t maxNumEUsPerSubSlice, uint32_t maxNumEUsPerDualSubSlice) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::getMaxThreadsForWorkgroup(const HardwareInfo &hwInfo, uint32_t maxNumEUsPerSubSlice) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2023-01-06 00:57:56 +08:00
|
|
|
void ProductHelperHw<IGFX_UNKNOWN>::setForceNonCoherent(void *const commandPtr, const StateComputeModeProperties &properties) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
void ProductHelperHw<IGFX_UNKNOWN>::adjustPlatformForProductFamily(HardwareInfo *hwInfo) {
|
2021-08-30 22:34:53 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-21 19:35:37 +08:00
|
|
|
uint64_t ProductHelperHw<IGFX_UNKNOWN>::getHostMemCapabilities(const HardwareInfo *hwInfo) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-21 19:35:37 +08:00
|
|
|
uint64_t ProductHelperHw<IGFX_UNKNOWN>::getDeviceMemCapabilities() const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2025-01-25 00:39:50 +08:00
|
|
|
uint64_t ProductHelperHw<IGFX_UNKNOWN>::getSingleDeviceSharedMemCapabilities(bool) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-21 19:35:37 +08:00
|
|
|
uint64_t ProductHelperHw<IGFX_UNKNOWN>::getCrossDeviceSharedMemCapabilities() const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2024-02-29 18:25:25 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::useGemCreateExtInAllocateMemoryByKMD() const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-12-01 23:14:07 +08:00
|
|
|
template <>
|
2022-12-21 19:35:37 +08:00
|
|
|
uint64_t ProductHelperHw<IGFX_UNKNOWN>::getSharedSystemMemCapabilities(const HardwareInfo *hwInfo) const {
|
2021-12-01 23:14:07 +08:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2021-11-30 20:43:06 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::overrideGfxPartitionLayoutForWsl() const {
|
2021-11-30 20:43:06 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-08-30 22:34:53 +08:00
|
|
|
template <>
|
2022-12-20 23:13:56 +08:00
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::getDeviceMemoryMaxClkRate(const HardwareInfo &hwInfo, const OSInterface *osIface, uint32_t subDeviceIndex) const {
|
2022-06-30 16:04:45 +08:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-20 23:13:56 +08:00
|
|
|
uint64_t ProductHelperHw<IGFX_UNKNOWN>::getDeviceMemoryPhysicalSizeInBytes(const OSInterface *osIface, uint32_t subDeviceIndex) const {
|
2022-06-30 16:04:45 +08:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-20 23:13:56 +08:00
|
|
|
uint64_t ProductHelperHw<IGFX_UNKNOWN>::getDeviceMemoryMaxBandWidthInBytesPerSecond(const HardwareInfo &hwInfo, const OSInterface *osIface, uint32_t subDeviceIndex) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isAdditionalStateBaseAddressWARequired(const HardwareInfo &hwInfo) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isMaxThreadsForWorkgroupWARequired(const HardwareInfo &hwInfo) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::obtainBlitterPreference(const HardwareInfo &hwInfo) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-10-28 04:22:31 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isBlitterFullySupported(const HardwareInfo &hwInfo) const {
|
2021-10-28 04:22:31 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-08-30 22:34:53 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isPageTableManagerSupported(const HardwareInfo &hwInfo) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::getHwRevIdFromStepping(uint32_t stepping, const HardwareInfo &hwInfo) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return CommonConstants::invalidStepping;
|
|
|
|
}
|
|
|
|
|
2022-03-11 01:27:38 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::getSteppingFromHwRevId(const HardwareInfo &hwInfo) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
return CommonConstants::invalidStepping;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::getAubStreamSteppingFromHwRevId(const HardwareInfo &hwInfo) const {
|
2021-08-30 22:34:53 +08:00
|
|
|
switch (getSteppingFromHwRevId(hwInfo)) {
|
|
|
|
default:
|
|
|
|
case REVISION_A0:
|
|
|
|
case REVISION_A1:
|
|
|
|
case REVISION_A3:
|
|
|
|
return AubMemDump::SteppingValues::A;
|
|
|
|
case REVISION_B:
|
|
|
|
return AubMemDump::SteppingValues::B;
|
|
|
|
case REVISION_C:
|
|
|
|
return AubMemDump::SteppingValues::C;
|
|
|
|
case REVISION_D:
|
|
|
|
return AubMemDump::SteppingValues::D;
|
|
|
|
case REVISION_K:
|
|
|
|
return AubMemDump::SteppingValues::K;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-09-02 19:11:39 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isDefaultEngineTypeAdjustmentRequired(const HardwareInfo &hwInfo) const {
|
2021-09-02 19:11:39 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-09-06 18:34:34 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isDisableOverdispatchAvailable(const HardwareInfo &hwInfo) const {
|
2021-09-06 18:34:34 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-09-06 23:21:40 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::allowCompression(const HardwareInfo &hwInfo) const {
|
2021-09-08 23:07:46 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-11-22 20:49:26 +08:00
|
|
|
template <>
|
2023-09-20 21:08:46 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isDirectSubmissionSupported(ReleaseHelper *releaseHelper) const {
|
2021-11-22 20:49:26 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2023-06-21 19:40:18 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isDirectSubmissionConstantCacheInvalidationNeeded(const HardwareInfo &hwInfo) const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-09-09 20:27:41 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
LocalMemoryAccessMode ProductHelperHw<IGFX_UNKNOWN>::getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const {
|
2023-12-19 18:17:17 +08:00
|
|
|
return LocalMemoryAccessMode::defaultMode;
|
2021-09-09 20:27:41 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
LocalMemoryAccessMode ProductHelperHw<IGFX_UNKNOWN>::getLocalMemoryAccessMode(const HardwareInfo &hwInfo) const {
|
2023-12-19 18:17:17 +08:00
|
|
|
return LocalMemoryAccessMode::defaultMode;
|
2021-09-09 20:27:41 +08:00
|
|
|
}
|
|
|
|
|
2021-09-10 08:37:27 +08:00
|
|
|
template <>
|
2022-12-21 19:35:37 +08:00
|
|
|
std::vector<int32_t> ProductHelperHw<IGFX_UNKNOWN>::getKernelSupportedThreadArbitrationPolicies() const {
|
2022-03-08 01:00:26 +08:00
|
|
|
return {};
|
2021-09-10 08:37:27 +08:00
|
|
|
}
|
|
|
|
|
2024-02-09 18:34:56 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isNewResidencyModelSupported() const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2024-05-29 17:43:26 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::deferMOCSToPatIndex() const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-09-21 20:29:24 +08:00
|
|
|
template <>
|
2023-05-12 22:49:39 +08:00
|
|
|
std::pair<bool, bool> ProductHelperHw<IGFX_UNKNOWN>::isPipeControlPriorToNonPipelinedStateCommandsWARequired(const HardwareInfo &hwInfo, bool isRcs, const ReleaseHelper *releaseHelper) const {
|
2022-02-04 23:43:17 +08:00
|
|
|
return {false, false};
|
2021-09-21 20:29:24 +08:00
|
|
|
}
|
|
|
|
|
2021-09-21 21:34:25 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::heapInLocalMem(const HardwareInfo &hwInfo) const {
|
2021-09-21 21:34:25 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-09-22 22:39:01 +08:00
|
|
|
template <>
|
2024-07-17 16:03:49 +08:00
|
|
|
void ProductHelperHw<IGFX_UNKNOWN>::setCapabilityCoherencyFlag(const HardwareInfo &hwInfo, bool &coherencyFlag) const {
|
2021-09-22 22:39:01 +08:00
|
|
|
}
|
|
|
|
|
2023-02-21 22:27:13 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isInitBuiltinAsyncSupported(const HardwareInfo &hwInfo) const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2024-08-28 18:25:16 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isCopyBufferRectSplitSupported() const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-09-23 23:08:41 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isAdditionalMediaSamplerProgrammingRequired() const {
|
2021-09-23 23:08:41 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isInitialFlagsProgrammingRequired() const {
|
2021-09-23 23:08:41 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isReturnedCmdSizeForMediaSamplerAdjustmentRequired() const {
|
2021-09-23 23:08:41 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-09-24 22:29:49 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::pipeControlWARequired(const HardwareInfo &hwInfo) const {
|
2021-09-24 22:29:49 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::imagePitchAlignmentWARequired(const HardwareInfo &hwInfo) const {
|
2021-09-24 22:29:49 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isForceEmuInt32DivRemSPWARequired(const HardwareInfo &hwInfo) const {
|
2021-09-24 22:29:49 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::is3DPipelineSelectWARequired() const {
|
2021-09-24 22:29:49 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-09-28 18:54:52 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isStorageInfoAdjustmentRequired() const {
|
2021-09-28 18:54:52 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-10-13 21:30:45 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isBlitterForImagesSupported() const {
|
2021-10-13 21:30:45 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2021-10-15 23:24:03 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isTile64With3DSurfaceOnBCSSupported(const HardwareInfo &hwInfo) const {
|
2021-10-15 23:24:03 +08:00
|
|
|
return false;
|
|
|
|
}
|
2021-12-20 22:37:33 +08:00
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isDcFlushAllowed() const {
|
2021-12-20 22:37:33 +08:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2024-04-12 19:05:44 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isDcFlushMitigated() const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2024-08-28 18:11:54 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::mitigateDcFlush() const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2024-04-15 20:46:28 +08:00
|
|
|
template <>
|
2024-09-05 22:13:40 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::overridePatToUCAndTwoWayCohForDcFlushMitigation(AllocationType allocationType) const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::overrideUsageForDcFlushMitigation(AllocationType allocationType) const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::overridePatToUCAndOneWayCohForDcFlushMitigation(AllocationType allocationType) const {
|
2024-04-15 20:46:28 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2024-05-21 16:54:21 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::overrideCacheableForDcFlushMitigation(AllocationType allocationType) const {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2024-08-02 17:53:36 +08:00
|
|
|
template <>
|
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::computeMaxNeededSubSliceSpace(const HardwareInfo &hwInfo) const {
|
|
|
|
return hwInfo.gtSystemInfo.MaxSubSlicesSupported;
|
|
|
|
}
|
|
|
|
|
2021-11-26 17:40:06 +08:00
|
|
|
template <>
|
2023-06-24 08:35:30 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::getUuid(NEO::DriverModel *driverModel, const uint32_t subDeviceCount, const uint32_t deviceIndex, std::array<uint8_t, ProductHelper::uuidSize> &uuid) const {
|
2021-11-26 17:40:06 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2022-02-18 05:44:55 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isFlushTaskAllowed() const {
|
2022-02-18 05:44:55 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2022-09-20 23:46:54 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isCopyEngineSelectorEnabled(const HardwareInfo &hwInfo) const {
|
2022-09-20 23:46:54 +08:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2022-03-09 23:39:57 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isGlobalFenceInCommandStreamRequired(const HardwareInfo &hwInfo) const {
|
2022-03-09 23:39:57 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::getThreadEuRatioForScratch(const HardwareInfo &hwInfo) const {
|
2022-03-22 01:44:02 +08:00
|
|
|
return 8u;
|
2022-03-09 23:39:57 +08:00
|
|
|
}
|
|
|
|
|
2022-03-31 00:00:43 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isIpSamplingSupported(const HardwareInfo &hwInfo) const {
|
2022-03-31 00:00:43 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2022-04-12 01:13:44 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isVmBindPatIndexProgrammingSupported() const {
|
2022-04-12 01:13:44 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2022-04-14 01:20:59 +08:00
|
|
|
template <>
|
2023-01-06 00:57:56 +08:00
|
|
|
void ProductHelperHw<IGFX_UNKNOWN>::updateScmCommand(void *const commandPtr, const StateComputeModeProperties &properties) const {
|
2022-04-26 22:28:18 +08:00
|
|
|
}
|
|
|
|
|
2022-05-02 21:54:24 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
void ProductHelperHw<IGFX_UNKNOWN>::enableCompression(HardwareInfo *hwInfo) const {
|
2022-05-02 21:54:24 +08:00
|
|
|
}
|
2022-04-26 22:28:18 +08:00
|
|
|
|
2022-05-11 01:38:03 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isCooperativeEngineSupported(const HardwareInfo &hwInfo) const {
|
2022-05-11 01:38:03 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2022-05-13 20:04:24 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isTimestampWaitSupportedForEvents() const {
|
2022-05-13 20:04:24 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2024-02-29 00:49:03 +08:00
|
|
|
template <>
|
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::getInternalHeapsPreallocated() const {
|
|
|
|
return 0u;
|
|
|
|
}
|
|
|
|
|
2022-05-02 21:54:24 +08:00
|
|
|
template <>
|
2022-12-21 19:35:37 +08:00
|
|
|
uint64_t ProductHelperHw<IGFX_UNKNOWN>::getHostMemCapabilitiesValue() const {
|
2022-05-02 21:54:24 +08:00
|
|
|
return 0;
|
|
|
|
}
|
2022-07-14 18:37:55 +08:00
|
|
|
|
2022-07-26 05:33:42 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isEvictionIfNecessaryFlagSupported() const {
|
2022-07-26 05:33:42 +08:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2022-07-14 18:37:55 +08:00
|
|
|
template <>
|
2022-08-23 19:48:18 +08:00
|
|
|
const char *L1CachePolicyHelper<IGFX_UNKNOWN>::getCachingPolicyOptions(bool isDebuggerActive) {
|
2022-07-14 18:37:55 +08:00
|
|
|
return nullptr;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
2022-08-23 19:48:18 +08:00
|
|
|
uint32_t L1CachePolicyHelper<IGFX_UNKNOWN>::getDefaultL1CachePolicy(bool isDebuggerActive) {
|
2022-07-14 18:37:55 +08:00
|
|
|
return 0u;
|
|
|
|
}
|
|
|
|
|
2022-08-10 19:52:06 +08:00
|
|
|
template <>
|
2022-12-13 00:43:41 +08:00
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isPrefetcherDisablingInDirectSubmissionRequired() const {
|
2022-08-10 19:52:06 +08:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2023-05-18 03:21:34 +08:00
|
|
|
template <>
|
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::getMaxNumSamplers() const {
|
|
|
|
return 0u;
|
|
|
|
}
|
|
|
|
|
2023-10-27 23:54:45 +08:00
|
|
|
template <>
|
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::getCommandBuffersPreallocatedPerCommandQueue() const {
|
|
|
|
return 0u;
|
|
|
|
}
|
|
|
|
|
2022-08-12 20:23:39 +08:00
|
|
|
template <>
|
2022-08-23 19:48:18 +08:00
|
|
|
uint32_t L1CachePolicyHelper<IGFX_UNKNOWN>::getL1CachePolicy(bool isDebuggerActive) {
|
|
|
|
return L1CachePolicyHelper<IGFX_UNKNOWN>::getDefaultL1CachePolicy(isDebuggerActive);
|
2022-08-12 20:23:39 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
template <>
|
|
|
|
uint32_t L1CachePolicyHelper<IGFX_UNKNOWN>::getUncachedL1CachePolicy() {
|
|
|
|
return 1u;
|
|
|
|
}
|
|
|
|
|
2023-09-23 00:06:50 +08:00
|
|
|
template <>
|
|
|
|
std::vector<uint32_t> ProductHelperHw<IGFX_UNKNOWN>::getSupportedNumGrfs(const ReleaseHelper *releaseHelper) const {
|
|
|
|
if (releaseHelper) {
|
|
|
|
return releaseHelper->getSupportedNumGrfs();
|
|
|
|
}
|
|
|
|
return {};
|
|
|
|
}
|
|
|
|
|
2025-03-26 00:26:05 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isBufferPoolAllocatorSupported() const {
|
2024-03-05 23:26:59 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2025-03-26 00:26:05 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isHostUsmPoolAllocatorSupported() const {
|
2025-02-15 00:08:13 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2025-03-26 00:26:05 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isDeviceUsmPoolAllocatorSupported() const {
|
2024-03-05 23:26:59 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2025-03-26 00:26:05 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isDeviceUsmAllocationReuseSupported() const {
|
2024-05-17 19:54:37 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2025-03-26 00:26:05 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::isHostUsmAllocationReuseSupported() const {
|
2024-07-23 22:40:05 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2025-03-26 00:26:05 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::useLocalPreferredForCacheableBuffers() const {
|
2024-03-07 23:53:20 +08:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2024-05-22 21:31:31 +08:00
|
|
|
template <>
|
|
|
|
std::optional<bool> ProductHelperHw<IGFX_UNKNOWN>::isCoherentAllocation(uint64_t patIndex) const {
|
|
|
|
return std::nullopt;
|
|
|
|
}
|
|
|
|
|
2022-08-23 12:02:33 +08:00
|
|
|
struct UnknownProduct {
|
|
|
|
struct FrontEndStateSupport {
|
|
|
|
static constexpr bool scratchSize = false;
|
|
|
|
static constexpr bool privateScratchSize = false;
|
2022-08-30 04:06:04 +08:00
|
|
|
static constexpr bool computeDispatchAllWalker = false;
|
|
|
|
|
|
|
|
static constexpr bool disableEuFusion = false;
|
|
|
|
static constexpr bool disableOverdispatch = false;
|
|
|
|
static constexpr bool singleSliceDispatchCcsMode = false;
|
2022-08-23 12:02:33 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
struct StateComputeModeStateSupport {
|
|
|
|
static constexpr bool threadArbitrationPolicy = false;
|
|
|
|
static constexpr bool coherencyRequired = false;
|
|
|
|
static constexpr bool largeGrfMode = false;
|
|
|
|
static constexpr bool zPassAsyncComputeThreadLimit = false;
|
|
|
|
static constexpr bool pixelAsyncComputeThreadLimit = false;
|
|
|
|
static constexpr bool devicePreemptionMode = false;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct StateBaseAddressStateSupport {
|
2022-11-23 01:17:04 +08:00
|
|
|
static constexpr bool bindingTablePoolBaseAddress = false;
|
2022-08-23 12:02:33 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
struct PipelineSelectStateSupport {
|
2022-09-13 03:11:56 +08:00
|
|
|
static constexpr bool mediaSamplerDopClockGate = false;
|
|
|
|
static constexpr bool systolicMode = false;
|
2022-08-23 12:02:33 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
struct PreemptionDebugSupport {
|
|
|
|
static constexpr bool preemptionMode = false;
|
|
|
|
static constexpr bool stateSip = false;
|
|
|
|
static constexpr bool csrSurface = false;
|
|
|
|
};
|
2023-02-01 11:12:09 +08:00
|
|
|
|
|
|
|
static const uint32_t threadsPerEu = 8;
|
2022-08-23 12:02:33 +08:00
|
|
|
};
|
|
|
|
|
|
|
|
template <>
|
|
|
|
struct HwMapper<IGFX_UNKNOWN> {
|
|
|
|
enum { gfxFamily = IGFX_UNKNOWN_CORE };
|
|
|
|
|
|
|
|
static const char *abbreviation;
|
|
|
|
using GfxProduct = UnknownProduct;
|
|
|
|
};
|
|
|
|
|
2024-07-18 19:32:45 +08:00
|
|
|
template <>
|
|
|
|
uint32_t ProductHelperHw<IGFX_UNKNOWN>::getCacheLineSize() const {
|
|
|
|
return 0x40;
|
|
|
|
}
|
|
|
|
|
2024-12-02 23:44:39 +08:00
|
|
|
template <>
|
|
|
|
bool ProductHelperHw<IGFX_UNKNOWN>::is48bResourceNeededForRayTracing() const {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2022-05-02 21:54:24 +08:00
|
|
|
} // namespace NEO
|
|
|
|
|
2023-03-10 20:28:11 +08:00
|
|
|
#include "shared/source/os_interface/product_helper.inl"
|
2022-05-02 21:54:24 +08:00
|
|
|
|
2022-12-13 00:43:41 +08:00
|
|
|
template class NEO::ProductHelperHw<IGFX_UNKNOWN>;
|
2022-07-14 18:37:55 +08:00
|
|
|
template struct NEO::L1CachePolicyHelper<IGFX_UNKNOWN>;
|