UDocumentation
UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ShaderCompilerMemoryLimit.h
Go to the documentation of this file.
1
// Copyright Epic Games, Inc. All Rights Reserved.
2
3
/*=============================================================================
4
ShaderCompilerMemoryLimit.h: Wrapper for Windows specific Process Tree functionality.
5
=============================================================================*/
6
7
#pragma once
8
9
#include "
CoreMinimal.h
"
10
#include "
HAL/PlatformProcess.h
"
11
12
#if PLATFORM_WINDOWS
13
15
class
FWindowsResourceProcessTreeMemory
16
{
17
public
:
18
FWindowsResourceProcessTreeMemory
(
const
FWindowsResourceProcessTreeMemory
&) =
delete
;
19
FWindowsResourceProcessTreeMemory
& operator = (
const
FWindowsResourceProcessTreeMemory
&) =
delete
;
20
21
FWindowsResourceProcessTreeMemory
() =
default
;
22
~FWindowsResourceProcessTreeMemory
() =
default
;
23
25
void
AddRootProcessId(
uint32
ProcessId);
26
28
void
Reset
();
29
31
bool
TryGetMemoryUsage(
FPlatformProcessMemoryStats
&
OutStats
);
32
33
private
:
34
struct
FProcessInfo
{
35
uint32
ProcessId = 0;
36
uint32
ParentProcessId
= 0;
37
};
38
39
/* The Process IDs we will measure */
40
TSet<uint32>
RootProcessIds
;
41
42
/* All Processes in the system */
43
TArray<FProcessInfo>
AllProcesses
;
44
45
/* The root Process IDs and all child Process IDs */
46
TSet<uint32>
TreeProcessIds
;
47
48
/* Populate the TreeProcessIds with RootProcessIds and their children. */
49
void
CollectTreeProcessIds
();
50
51
/* Recursively add the RootProcessId and children to the TreeProcessIds */
52
void
CollectTreeProcessIdsRecurse
(
uint32
RootProcessId
);
53
};
54
55
using
FResourceProcessTreeMemory
=
FWindowsResourceProcessTreeMemory
;
56
57
#else
58
60
class
FGenericResourceProcessTreeMemory
61
{
62
public
:
63
FGenericResourceProcessTreeMemory
(
const
FGenericResourceProcessTreeMemory
&) =
delete
;
64
FGenericResourceProcessTreeMemory
&
operator =
(
const
FGenericResourceProcessTreeMemory
&) =
delete
;
65
66
FGenericResourceProcessTreeMemory
() =
default
;
67
~FGenericResourceProcessTreeMemory
() =
default
;
68
69
void
AddRootProcessId
(
uint32
ProcessId);
70
void
Reset
();
71
bool
TryGetMemoryUsage
(
FPlatformProcessMemoryStats
&
OutStats
);
72
};
73
74
using
FResourceProcessTreeMemory
=
FGenericResourceProcessTreeMemory
;
75
76
#endif
// PLATFORM_WINDOWS
CoreMinimal.h
StaticCastSharedRef
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition
SharedPointer.h:127
EPathFollowingVelocityMode::Reset
@ Reset
PlatformProcess.h
uint32
uint32_t uint32
Definition
binka_ue_file_header.h:6
FGenericResourceProcessTreeMemory
Definition
ShaderCompilerMemoryLimit.h:61
FGenericResourceProcessTreeMemory::TryGetMemoryUsage
bool TryGetMemoryUsage(FPlatformProcessMemoryStats &OutStats)
Definition
ShaderCompilerMemoryLimit.cpp:141
FGenericResourceProcessTreeMemory::FGenericResourceProcessTreeMemory
FGenericResourceProcessTreeMemory(const FGenericResourceProcessTreeMemory &)=delete
FGenericResourceProcessTreeMemory::Reset
void Reset()
Definition
ShaderCompilerMemoryLimit.cpp:136
FGenericResourceProcessTreeMemory::~FGenericResourceProcessTreeMemory
~FGenericResourceProcessTreeMemory()=default
FGenericResourceProcessTreeMemory::operator=
FGenericResourceProcessTreeMemory & operator=(const FGenericResourceProcessTreeMemory &)=delete
FGenericResourceProcessTreeMemory::FGenericResourceProcessTreeMemory
FGenericResourceProcessTreeMemory()=default
FGenericResourceProcessTreeMemory::AddRootProcessId
void AddRootProcessId(uint32 ProcessId)
Definition
ShaderCompilerMemoryLimit.cpp:131
TArray
Definition
Array.h:670
FPlatformProcessMemoryStats
Definition
GenericPlatformProcess.h:130
Engine
Source
Runtime
Engine
Private
ShaderCompiler
ShaderCompilerMemoryLimit.h
Generated by
1.9.8