2023-02-06 09:05:43 +00:00
|
|
|
/*
|
2025-01-08 13:52:31 +00:00
|
|
|
* Copyright (C) 2023-2025 Intel Corporation
|
2023-02-06 09:05:43 +00:00
|
|
|
*
|
|
|
|
|
* SPDX-License-Identifier: MIT
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
2023-03-10 12:28:11 +00:00
|
|
|
#include "shared/source/os_interface/product_helper.h"
|
2023-02-06 09:05:43 +00:00
|
|
|
|
|
|
|
|
namespace NEO {
|
|
|
|
|
|
|
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
|
|
|
|
class ProductHelperHw : public ProductHelper {
|
|
|
|
|
public:
|
|
|
|
|
static std::unique_ptr<ProductHelper> create() {
|
|
|
|
|
auto productHelper = std::unique_ptr<ProductHelper>(new ProductHelperHw());
|
|
|
|
|
|
|
|
|
|
return productHelper;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int configureHardwareCustom(HardwareInfo *hwInfo, OSInterface *osIface) const override;
|
|
|
|
|
void adjustPlatformForProductFamily(HardwareInfo *hwInfo) override;
|
|
|
|
|
void adjustSamplerState(void *sampler, const HardwareInfo &hwInfo) const override;
|
|
|
|
|
uint64_t getHostMemCapabilities(const HardwareInfo *hwInfo) const override;
|
|
|
|
|
uint64_t getDeviceMemCapabilities() const override;
|
2025-01-24 16:39:50 +00:00
|
|
|
uint64_t getSingleDeviceSharedMemCapabilities(bool isKmdMigrationAvailable) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
uint64_t getCrossDeviceSharedMemCapabilities() const override;
|
|
|
|
|
uint64_t getSharedSystemMemCapabilities(const HardwareInfo *hwInfo) const override;
|
|
|
|
|
std::vector<int32_t> getKernelSupportedThreadArbitrationPolicies() const override;
|
|
|
|
|
uint32_t getDeviceMemoryMaxClkRate(const HardwareInfo &hwInfo, const OSInterface *osIface, uint32_t subDeviceIndex) const override;
|
|
|
|
|
uint64_t getDeviceMemoryPhysicalSizeInBytes(const OSInterface *osIface, uint32_t subDeviceIndex) const override;
|
|
|
|
|
uint64_t getDeviceMemoryMaxBandWidthInBytesPerSecond(const HardwareInfo &hwInfo, const OSInterface *osIface, uint32_t subDeviceIndex) const override;
|
|
|
|
|
bool isAdditionalStateBaseAddressWARequired(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isMaxThreadsForWorkgroupWARequired(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
uint32_t getMaxThreadsForWorkgroupInDSSOrSS(const HardwareInfo &hwInfo, uint32_t maxNumEUsPerSubSlice, uint32_t maxNumEUsPerDualSubSlice) const override;
|
|
|
|
|
uint32_t getMaxThreadsForWorkgroup(const HardwareInfo &hwInfo, uint32_t maxNumEUsPerSubSlice) const override;
|
2025-05-16 12:30:58 +00:00
|
|
|
uint32_t getPreferredWorkgroupCountPerSubslice() const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
void setForceNonCoherent(void *const commandPtr, const StateComputeModeProperties &properties) const override;
|
|
|
|
|
void updateScmCommand(void *const commandPtr, const StateComputeModeProperties &properties) const override;
|
|
|
|
|
bool obtainBlitterPreference(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isBlitterFullySupported(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isPageTableManagerSupported(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool overrideGfxPartitionLayoutForWsl() const override;
|
|
|
|
|
uint32_t getHwRevIdFromStepping(uint32_t stepping, const HardwareInfo &hwInfo) const override;
|
|
|
|
|
uint32_t getSteppingFromHwRevId(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
uint32_t getAubStreamSteppingFromHwRevId(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
std::optional<aub_stream::ProductFamily> getAubStreamProductFamily() const override;
|
|
|
|
|
bool isDefaultEngineTypeAdjustmentRequired(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isDisableOverdispatchAvailable(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
LocalMemoryAccessMode getLocalMemoryAccessMode(const HardwareInfo &hwInfo) const override;
|
2024-02-09 10:34:56 +00:00
|
|
|
bool isNewResidencyModelSupported() const override;
|
2023-09-20 13:08:46 +00:00
|
|
|
bool isDirectSubmissionSupported(ReleaseHelper *releaseHelper) const override;
|
2023-06-21 11:40:18 +00:00
|
|
|
bool isDirectSubmissionConstantCacheInvalidationNeeded(const HardwareInfo &hwInfo) const override;
|
2024-06-03 13:31:49 +00:00
|
|
|
bool restartDirectSubmissionForHostptrFree() const override;
|
2023-05-12 14:49:39 +00:00
|
|
|
std::pair<bool, bool> isPipeControlPriorToNonPipelinedStateCommandsWARequired(const HardwareInfo &hwInfo, bool isRcs, const ReleaseHelper *releaseHelper) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
bool heapInLocalMem(const HardwareInfo &hwInfo) const override;
|
2024-07-17 08:03:49 +00:00
|
|
|
void setCapabilityCoherencyFlag(const HardwareInfo &hwInfo, bool &coherencyFlag) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
bool isAdditionalMediaSamplerProgrammingRequired() const override;
|
|
|
|
|
bool isInitialFlagsProgrammingRequired() const override;
|
|
|
|
|
bool isReturnedCmdSizeForMediaSamplerAdjustmentRequired() const override;
|
|
|
|
|
bool pipeControlWARequired(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool imagePitchAlignmentWARequired(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isForceEmuInt32DivRemSPWARequired(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool is3DPipelineSelectWARequired() const override;
|
|
|
|
|
bool isStorageInfoAdjustmentRequired() const override;
|
|
|
|
|
bool isBlitterForImagesSupported() const override;
|
|
|
|
|
bool isPageFaultSupported() const override;
|
2024-07-19 10:25:15 +00:00
|
|
|
bool blitEnqueuePreferred(bool isWriteToImageFromBuffer) const override;
|
2023-02-26 15:46:10 +00:00
|
|
|
bool isKmdMigrationSupported() const override;
|
2024-04-08 18:37:35 +00:00
|
|
|
bool isDisableScratchPagesSupported() const override;
|
2025-01-28 20:58:22 +00:00
|
|
|
bool isDisableScratchPagesRequiredForDebugger() const override;
|
2025-01-24 10:50:51 +00:00
|
|
|
bool areSecondaryContextsSupported() const override;
|
2025-04-28 18:40:02 +00:00
|
|
|
bool isPrimaryContextsAggregationSupported() const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
bool isTile64With3DSurfaceOnBCSSupported(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isDcFlushAllowed() const override;
|
2024-08-02 11:53:36 +02:00
|
|
|
uint32_t computeMaxNeededSubSliceSpace(const HardwareInfo &hwInfo) const override;
|
2023-06-24 00:35:30 +00:00
|
|
|
bool getUuid(NEO::DriverModel *driverModel, uint32_t subDeviceCount, uint32_t deviceIndex, std::array<uint8_t, ProductHelper::uuidSize> &uuid) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
bool isFlushTaskAllowed() const override;
|
|
|
|
|
bool isSystolicModeConfigurable(const HardwareInfo &hwInfo) const override;
|
2023-02-21 14:27:13 +00:00
|
|
|
bool isInitBuiltinAsyncSupported(const HardwareInfo &hwInfo) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
bool isCopyEngineSelectorEnabled(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isGlobalFenceInCommandStreamRequired(const HardwareInfo &hwInfo) const override;
|
2025-04-17 09:06:08 +00:00
|
|
|
bool isGlobalFenceInPostSyncRequired(const HardwareInfo &hwInfo) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
bool isGlobalFenceInDirectSubmissionRequired(const HardwareInfo &hwInfo) const override;
|
2025-03-18 15:45:27 +00:00
|
|
|
bool isTimestampWaitSupportedForQueues(bool heaplessEnabled) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
uint32_t getThreadEuRatioForScratch(const HardwareInfo &hwInfo) const override;
|
2025-01-10 09:58:21 +00:00
|
|
|
void adjustScratchSize(size_t &requiredScratchSize) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
size_t getSvmCpuAlignment() const override;
|
|
|
|
|
bool isComputeDispatchAllWalkerEnableInCfeStateRequired(const HardwareInfo &hwInfo) const override;
|
2025-01-22 10:33:32 +00:00
|
|
|
bool adjustDispatchAllRequired(const HardwareInfo &hwInfo) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
bool isVmBindPatIndexProgrammingSupported() const override;
|
|
|
|
|
bool isIpSamplingSupported(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isGrfNumReportedWithScm() const override;
|
|
|
|
|
bool isThreadArbitrationPolicyReportedWithScm() const override;
|
2024-08-28 10:25:16 +00:00
|
|
|
bool isCopyBufferRectSplitSupported() const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
bool isCooperativeEngineSupported(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isTimestampWaitSupportedForEvents() const override;
|
|
|
|
|
bool isTilePlacementResourceWaRequired(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isBlitSplitEnqueueWARequired(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isInitDeviceWithFirstSubmissionRequired(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool allowMemoryPrefetch(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isBcsReportWaRequired(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isBlitCopyRequiredForLocalMemory(const RootDeviceEnvironment &rootDeviceEnvironment, const GraphicsAllocation &allocation) const override;
|
|
|
|
|
bool isImplicitScalingSupported(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isCpuCopyNecessary(const void *ptr, MemoryManager *memoryManager) const override;
|
|
|
|
|
bool isUnlockingLockedPtrNecessary(const HardwareInfo &hwInfo) const override;
|
2023-05-05 15:26:09 +00:00
|
|
|
bool isAdjustWalkOrderAvailable(const ReleaseHelper *releaseHelper) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
uint32_t getL1CachePolicy(bool isDebuggerActive) const override;
|
|
|
|
|
bool isEvictionIfNecessaryFlagSupported() const override;
|
|
|
|
|
void adjustNumberOfCcs(HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isPrefetcherDisablingInDirectSubmissionRequired() const override;
|
|
|
|
|
bool isStatefulAddressingModeSupported() const override;
|
2023-09-14 13:53:58 +00:00
|
|
|
uint32_t getNumberOfPartsInTileForConcurrentKernel(uint32_t ccsCount) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
bool isPlatformQuerySupported() const override;
|
|
|
|
|
bool isNonBlockingGpuSubmissionSupported() const override;
|
2023-03-22 14:45:04 +01:00
|
|
|
bool isResolveDependenciesByPipeControlsSupported(const HardwareInfo &hwInfo, bool isOOQ, TaskCountType queueTaskCount, const CommandStreamReceiver &queueCsr) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
bool isBufferPoolAllocatorSupported() const override;
|
2025-02-14 16:08:13 +00:00
|
|
|
bool isHostUsmPoolAllocatorSupported() const override;
|
|
|
|
|
bool isDeviceUsmPoolAllocatorSupported() const override;
|
2024-05-17 11:54:37 +00:00
|
|
|
bool isDeviceUsmAllocationReuseSupported() const override;
|
2024-07-23 14:40:05 +00:00
|
|
|
bool isHostUsmAllocationReuseSupported() const override;
|
2024-03-07 15:53:20 +00:00
|
|
|
bool useLocalPreferredForCacheableBuffers() const override;
|
2024-02-16 16:26:30 +00:00
|
|
|
bool useGemCreateExtInAllocateMemoryByKMD() const override;
|
2023-12-24 07:46:47 +01:00
|
|
|
bool isTlbFlushRequired() const override;
|
2024-09-11 09:31:36 +00:00
|
|
|
bool isDetectIndirectAccessInKernelSupported(const KernelDescriptor &kernelDescriptor, const bool isPrecompiled, const uint32_t precompiledKernelIndirectDetectionVersion) const override;
|
|
|
|
|
uint32_t getRequiredDetectIndirectVersion() const override;
|
2024-09-13 13:52:55 +00:00
|
|
|
uint32_t getRequiredDetectIndirectVersionVC() const override;
|
2023-07-25 14:44:02 +02:00
|
|
|
bool isLinearStoragePreferred(bool isImage1d, bool forceLinearStorage) const override;
|
2023-04-27 14:13:51 +00:00
|
|
|
bool isTranslationExceptionSupported() const override;
|
2023-05-17 19:21:34 +00:00
|
|
|
uint32_t getMaxNumSamplers() const override;
|
2023-10-27 15:54:45 +00:00
|
|
|
uint32_t getCommandBuffersPreallocatedPerCommandQueue() const override;
|
2023-11-17 12:14:15 +00:00
|
|
|
uint32_t getInternalHeapsPreallocated() const override;
|
2025-05-07 09:35:03 +00:00
|
|
|
bool overrideAllocationCpuCacheable(const AllocationData &allocationData) const override;
|
2025-01-30 15:37:10 +00:00
|
|
|
bool is2MBLocalMemAlignmentEnabled() const override;
|
2025-04-16 18:34:28 +00:00
|
|
|
bool isPostImageWriteFlushRequired() const override;
|
2023-03-15 13:53:53 +00:00
|
|
|
|
2023-02-06 09:05:43 +00:00
|
|
|
bool getFrontEndPropertyScratchSizeSupport() const override;
|
|
|
|
|
bool getFrontEndPropertyPrivateScratchSizeSupport() const override;
|
|
|
|
|
bool getFrontEndPropertyComputeDispatchAllWalkerSupport() const override;
|
|
|
|
|
bool getFrontEndPropertyDisableEuFusionSupport() const override;
|
|
|
|
|
bool getFrontEndPropertyDisableOverDispatchSupport() const override;
|
|
|
|
|
bool getFrontEndPropertySingleSliceDispatchCcsModeSupport() const override;
|
|
|
|
|
|
|
|
|
|
bool getScmPropertyThreadArbitrationPolicySupport() const override;
|
|
|
|
|
bool getScmPropertyCoherencyRequiredSupport() const override;
|
|
|
|
|
bool getScmPropertyZPassAsyncComputeThreadLimitSupport() const override;
|
|
|
|
|
bool getScmPropertyPixelAsyncComputeThreadLimitSupport() const override;
|
|
|
|
|
bool getScmPropertyLargeGrfModeSupport() const override;
|
|
|
|
|
bool getScmPropertyDevicePreemptionModeSupport() const override;
|
|
|
|
|
|
|
|
|
|
bool getStateBaseAddressPropertyBindingTablePoolBaseAddressSupport() const override;
|
|
|
|
|
|
|
|
|
|
bool getPreemptionDbgPropertyPreemptionModeSupport() const override;
|
|
|
|
|
bool getPreemptionDbgPropertyStateSipSupport() const override;
|
|
|
|
|
bool getPreemptionDbgPropertyCsrSurfaceSupport() const override;
|
|
|
|
|
|
|
|
|
|
bool getPipelineSelectPropertyMediaSamplerDopClockGateSupport() const override;
|
|
|
|
|
bool getPipelineSelectPropertySystolicModeSupport() const override;
|
|
|
|
|
|
|
|
|
|
void fillScmPropertiesSupportStructure(StateComputeModePropertiesSupport &propertiesSupport) const override;
|
2023-04-27 14:13:51 +00:00
|
|
|
void fillScmPropertiesSupportStructureExtra(StateComputeModePropertiesSupport &propertiesSupport, const RootDeviceEnvironment &rootDeviceEnvironment) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
void fillFrontEndPropertiesSupportStructure(FrontEndPropertiesSupport &propertiesSupport, const HardwareInfo &hwInfo) const override;
|
|
|
|
|
void fillPipelineSelectPropertiesSupportStructure(PipelineSelectPropertiesSupport &propertiesSupport, const HardwareInfo &hwInfo) const override;
|
|
|
|
|
void fillStateBaseAddressPropertiesSupportStructure(StateBaseAddressPropertiesSupport &propertiesSupport) const override;
|
2025-03-19 01:28:15 +00:00
|
|
|
void parseCcsMode(std::string ccsModeString, std::unordered_map<uint32_t, uint32_t> &rootDeviceNumCcsMap, uint32_t rootDeviceIndex, RootDeviceEnvironment *rootDeviceEnvironment) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
|
2023-03-08 10:42:29 +00:00
|
|
|
bool isFusedEuDisabledForDpas(bool kernelHasDpasInstructions, const uint32_t *lws, const uint32_t *groupCount, const HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isCalculationForDisablingEuFusionWithDpasNeeded(const HardwareInfo &hwInfo) const override;
|
2023-03-06 15:12:14 +00:00
|
|
|
bool is48bResourceNeededForRayTracing() const override;
|
2023-05-29 15:18:31 +00:00
|
|
|
bool disableL3CacheForDebug(const HardwareInfo &hwInfo) const override;
|
2023-06-09 15:23:03 +00:00
|
|
|
bool isSkippingStatefulInformationRequired(const KernelDescriptor &kernelDescriptor) const override;
|
2023-09-04 14:11:37 +00:00
|
|
|
bool isResolvingSubDeviceIDNeeded(const ReleaseHelper *releaseHelper) const override;
|
2024-02-15 15:45:12 +00:00
|
|
|
uint64_t overridePatIndex(bool isUncachedType, uint64_t patIndex, AllocationType allocationType) const override;
|
2023-09-22 16:06:50 +00:00
|
|
|
std::vector<uint32_t> getSupportedNumGrfs(const ReleaseHelper *releaseHelper) const override;
|
2023-12-04 23:40:40 +00:00
|
|
|
aub_stream::EngineType getDefaultCopyEngine() const override;
|
2024-01-20 01:39:14 +00:00
|
|
|
void adjustEngineGroupType(EngineGroupType &engineGroupType) const override;
|
2024-01-25 17:07:26 +00:00
|
|
|
std::optional<GfxMemoryAllocationMethod> getPreferredAllocationMethod(AllocationType allocationType) const override;
|
|
|
|
|
bool isCachingOnCpuAvailable() const override;
|
2024-01-31 14:17:57 +00:00
|
|
|
bool isNewCoherencyModelSupported() const override;
|
2025-05-07 09:35:03 +00:00
|
|
|
bool isResourceUncachedForCS(AllocationType allocationType) const override;
|
2025-05-14 13:51:18 +00:00
|
|
|
bool deferMOCSToPatIndex(bool isWddmOnLinux) const override;
|
2024-03-27 12:52:30 +00:00
|
|
|
bool supportReadOnlyAllocations() const override;
|
2024-04-24 14:00:07 +00:00
|
|
|
const std::vector<uint32_t> getSupportedLocalDispatchSizes(const HardwareInfo &hwInfo) const override;
|
2024-11-22 16:27:12 +00:00
|
|
|
uint32_t getMaxLocalRegionSize(const HardwareInfo &hwInfo) const override;
|
2025-02-06 13:02:04 +00:00
|
|
|
uint32_t getMaxLocalSubRegionSize(const HardwareInfo &hwInfo) const override;
|
2024-11-14 17:09:23 +00:00
|
|
|
bool localDispatchSizeQuerySupported() const override;
|
2024-04-08 09:32:11 +00:00
|
|
|
bool isDeviceToHostCopySignalingFenceRequired() const override;
|
2024-04-05 02:02:14 +00:00
|
|
|
size_t getMaxFillPaternSizeForCopyEngine() const override;
|
2024-04-29 11:22:46 +00:00
|
|
|
bool isAvailableExtendedScratch() const override;
|
2024-05-22 13:31:31 +00:00
|
|
|
std::optional<bool> isCoherentAllocation(uint64_t patIndex) const override;
|
2024-06-24 17:01:44 +00:00
|
|
|
bool isStagingBuffersEnabled() const override;
|
2024-07-18 11:32:45 +00:00
|
|
|
uint32_t getCacheLineSize() const override;
|
2024-07-19 21:32:41 +00:00
|
|
|
bool supports2DBlockStore() const override;
|
|
|
|
|
bool supports2DBlockLoad() const override;
|
2024-08-10 12:11:45 +00:00
|
|
|
uint32_t getNumCacheRegions() const override;
|
2025-05-28 19:06:07 +00:00
|
|
|
uint32_t adjustMaxThreadsPerThreadGroup(uint32_t maxThreadsPerThreadGroup, uint32_t simt, uint32_t grfCount, bool isHeaplessModeEnabled) const override;
|
2024-08-10 12:11:45 +00:00
|
|
|
uint64_t getPatIndex(CacheRegion cacheRegion, CachePolicy cachePolicy) const override;
|
2025-05-16 14:24:45 +00:00
|
|
|
uint32_t getGmmResourceUsageOverride(uint32_t usageType) const override;
|
2025-02-13 17:19:05 +00:00
|
|
|
bool isSharingWith3dOrMediaAllowed() const override;
|
2025-03-05 15:46:03 +00:00
|
|
|
bool isL3FlushAfterPostSyncRequired(bool heaplessEnabled) const override;
|
2025-03-06 07:49:08 +00:00
|
|
|
void overrideDirectSubmissionTimeouts(std::chrono::microseconds &timeout, std::chrono::microseconds &maxTimeout) const override;
|
2025-03-20 10:00:35 +00:00
|
|
|
bool isMisalignedUserPtr2WayCoherent() const override;
|
2025-04-01 23:47:02 +00:00
|
|
|
bool isSvmHeapReservationSupported() const override;
|
2025-04-03 13:20:54 +00:00
|
|
|
void setRenderCompressedFlags(HardwareInfo &hwInfo) const override;
|
|
|
|
|
bool isCompressionForbidden(const HardwareInfo &hwInfo) const override;
|
2025-04-24 10:45:06 +00:00
|
|
|
bool isExposingSubdevicesAllowed() const override;
|
2025-05-01 16:49:48 +00:00
|
|
|
bool useAdditionalBlitProperties() const override;
|
2025-05-20 14:41:24 +00:00
|
|
|
bool isNonCoherentTimestampsModeEnabled() const override;
|
2025-04-01 18:09:02 +00:00
|
|
|
bool getStorageInfoLocalOnlyFlag(LocalMemAllocationMode usmDeviceAllocationMode, bool defaultValue) const override;
|
2023-02-06 09:05:43 +00:00
|
|
|
|
|
|
|
|
~ProductHelperHw() override = default;
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
ProductHelperHw() = default;
|
|
|
|
|
|
|
|
|
|
void enableBlitterOperationsSupport(HardwareInfo *hwInfo) const;
|
|
|
|
|
bool getConcurrentAccessMemCapabilitiesSupported(UsmAccessCapabilities capability) const;
|
|
|
|
|
uint64_t getHostMemCapabilitiesValue() const;
|
|
|
|
|
bool getHostMemCapabilitiesSupported(const HardwareInfo *hwInfo) const;
|
|
|
|
|
LocalMemoryAccessMode getDefaultLocalMemoryAccessMode(const HardwareInfo &hwInfo) const override;
|
|
|
|
|
void fillScmPropertiesSupportStructureBase(StateComputeModePropertiesSupport &propertiesSupport) const override;
|
2025-04-03 13:20:54 +00:00
|
|
|
bool isCompressionForbiddenCommon(bool defaultValue) const;
|
2023-02-06 09:05:43 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
template <PRODUCT_FAMILY gfxProduct>
|
2023-03-08 09:07:47 +00:00
|
|
|
struct EnableProductHelper {
|
|
|
|
|
EnableProductHelper() {
|
2023-02-06 09:05:43 +00:00
|
|
|
auto productHelperCreateFunction = ProductHelperHw<gfxProduct>::create;
|
|
|
|
|
productHelperFactory[gfxProduct] = productHelperCreateFunction;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
2023-03-08 09:30:38 +00:00
|
|
|
} // namespace NEO
|