Files
UnrealEngine/Engine/Source/Runtime/D3D12RHI/Private/D3D12IntelExtensions.h
2025-05-18 13:04:45 +08:00

62 lines
1.9 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#ifndef INTEL_EXTENSIONS
# define INTEL_EXTENSIONS 0
#endif
#if INTEL_EXTENSIONS
#include "D3D12ThirdParty.h"
#define INTC_IGDEXT_D3D12 1
#include "Microsoft/AllowMicrosoftPlatformTypes.h"
THIRD_PARTY_INCLUDES_START
#include <igdext.h>
THIRD_PARTY_INCLUDES_END
#include "Microsoft/HideMicrosoftPlatformTypes.h"
#include "RHICoreIntelBreadcrumbs.h"
extern bool GDX12INTCAtomicUInt64Emulation;
struct INTCExtensionContext;
struct INTCExtensionInfo;
struct INTCSupportedVersion
{
INTCExtensionVersion Version; // Required version
IConsoleVariable* CVar; // Console variable that controls this feature
};
extern INTCExtensionVersion IntelExtensionsVersion;
// Offsets for the version structure
#define INTEL_EXTENSION_VERSION_GENERIC 0 // Generic version for all UE5 targets
#define INTEL_EXTENSION_VERSION_BREADCRUMBS 1 // Intel Breadcrumbs support
bool MatchIntelExtensionVersion(const INTCExtensionVersion& Version);
void SetIntelExtensionsVersion( const INTCExtensionVersion& ExtensionsVersion );
INTCExtensionContext* CreateIntelExtensionsContext(ID3D12Device* Device, INTCExtensionInfo& INTCExtensionInfo, uint32 DeviceId = 0);
void DestroyIntelExtensionsContext(INTCExtensionContext* IntelExtensionContext);
bool EnableIntelAtomic64Support(INTCExtensionContext* IntelExtensionContext, INTCExtensionInfo& INTCExtensionInfo);
void EnableIntelAppDiscovery(uint32 DeviceId);
#if INTEL_GPU_CRASH_DUMPS
namespace UE::RHICore::Intel::GPUCrashDumps::D3D12
{
uint64_t RegisterCommandList( ID3D12CommandList* pCommandList );
//void UnregisterCommandList( FCommandList CommandList );
#if WITH_RHI_BREADCRUMBS
void BeginBreadcrumb( ID3D12GraphicsCommandList* pCommandList, FRHIBreadcrumbNode* Breadcrumb );
void EndBreadcrumb( ID3D12GraphicsCommandList* pCommandList, FRHIBreadcrumbNode* Breadcrumb );
#endif
}
#endif
#endif //INTEL_EXTENSIONS