7#include "Containers/Array.h"
11#include "Misc/Optional.h"
44 for (
int32 Idx = 0; Idx < Values.
Num(); ++Idx)
46 if (Values[Idx] >
Other.Values[Idx])
50 if (Values[Idx] <
Other.Values[Idx])
69 return !(*
this ==
Other);
105 if (In[0] ==
'=' && In[1] ==
'=')
110 if (In[0] ==
'!' && In[1] ==
'=')
350 Entry.
Date = ParseMonthDayYearDate(FString(Chars));
388 ensureMsgf(
IsValid(),
TEXT(
"Exactly one of driver date or driver version must be specified in a driver denylist entry"));
507 template <
typename TEntryType>
510 const FString Section = GetVendorSectionName();
512 if (Section.IsEmpty())
548 FString GetVendorSectionName()
const
550 const TCHAR* Section =
nullptr;
554 Section =
TEXT(
"GPU_NVIDIA");
556 if (DriverInfo.
IsAMD())
558 Section =
TEXT(
"GPU_AMD");
562 Section =
TEXT(
"GPU_Intel");
566 Section =
TEXT(
"GPU_Qualcomm");
573 return FString::Printf(
TEXT(
"%s %s"), Section,
ANSI_TO_TCHAR(FPlatformProperties::IniPlatformName()));
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
#define ensure( InExpression)
Definition AssertionMacros.h:464
FConfigCacheIni * GConfig
Definition CoreGlobals.cpp:54
FString GHardwareIni
Definition CoreGlobals.cpp:251
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ANSI_TO_TCHAR(str)
Definition StringConv.h:1020
CORE_API int32 GetArray(const TCHAR *Section, const TCHAR *Key, TArray< FString > &out_Arr, const FString &Filename)
Definition ConfigCacheIni.cpp:5170
Definition GenericPlatformDriver.h:19
bool operator!=(const FDriverVersion &Other) const
Definition GenericPlatformDriver.h:67
uint32 GetVersionValue(uint32 Index) const
Definition GenericPlatformDriver.h:81
bool operator<(const FDriverVersion &Other) const
Definition GenericPlatformDriver.h:63
const TArray< uint32 > & GetVersionValues() const
Definition GenericPlatformDriver.h:86
bool operator>=(const FDriverVersion &Other) const
Definition GenericPlatformDriver.h:71
bool operator==(const FDriverVersion &Other) const
Definition GenericPlatformDriver.h:59
void Parse(const FString &DriverVersionString)
Definition GenericPlatformDriver.h:28
bool operator<=(const FDriverVersion &Other) const
Definition GenericPlatformDriver.h:75
bool operator>(const FDriverVersion &Other) const
Definition GenericPlatformDriver.h:42
FDriverVersion(const FString &DriverVersionString)
Definition GenericPlatformDriver.h:23
Definition GenericPlatformDriver.h:487
FGPUDriverHelper(const FGPUDriverInfo &InDriverInfo)
Definition GenericPlatformDriver.h:489
TOptional< FDriverDenyListEntry > FindDriverDenyListEntry() const
Definition GenericPlatformDriver.h:501
TOptional< FSuggestedDriverEntry > FindSuggestedDriverVersion() const
Definition GenericPlatformDriver.h:495
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
void Empty(SizeType Slack=0)
Definition Array.h:2273
@ CaseSensitive
Definition CString.h:23
@ FromStart
Definition CString.h:36
U16 Index
Definition radfft.cpp:71
Definition GenericPlatformDriver.h:278
TOptional< FRegexPattern > AdapterNameRegexConstraint
Definition GenericPlatformDriver.h:280
bool HasConstraints()
Definition GenericPlatformDriver.h:327
TOptional< FString > RHINameConstraint
Definition GenericPlatformDriver.h:279
FDriverConfigEntryConstraints()=default
bool AreConstraintsSatisfied(const FGPUDriverInfo &Info, uint32 &OutNumSatisfiedConstraints) const
Definition GenericPlatformDriver.h:301
FDriverConfigEntryConstraints(const TCHAR *Entry)
Definition GenericPlatformDriver.h:284
Definition GenericPlatformDriver.h:340
static FDriverDateDenyListEntry FromString(const FString &DriverDateStringWithComparisonOp)
Definition GenericPlatformDriver.h:345
FDateTime Date
Definition GenericPlatformDriver.h:342
EComparisonOp ComparisonOp
Definition GenericPlatformDriver.h:341
Definition GenericPlatformDriver.h:355
EComparisonOp ComparisonOp
Definition GenericPlatformDriver.h:356
FDriverVersion Version
Definition GenericPlatformDriver.h:357
static FDriverVersionDenyListEntry FromString(const FString &DriverVersionStringWithComparisonOp)
Definition GenericPlatformDriver.h:359
Definition GenericPlatformDriver.h:339
FDriverDenyListEntry()=default
FString DenylistReason
Definition GenericPlatformDriver.h:450
bool AppliesToLatestDrivers()
Definition GenericPlatformDriver.h:429
bool AppliesToDriver(const FGPUDriverInfo &Info, uint32 &OutNumSatisfiedConstraints) const
Definition GenericPlatformDriver.h:396
FDriverDenyListEntry(const TCHAR *Entry)
Definition GenericPlatformDriver.h:371
bool IsValid() const
Definition GenericPlatformDriver.h:442
TOptional< FDriverVersionDenyListEntry > DriverVersion
Definition GenericPlatformDriver.h:447
TOptional< FDriverDateDenyListEntry > DriverDate
Definition GenericPlatformDriver.h:448
Definition GenericPlatformDriver.h:156
static FString GetNVIDIAUnifiedVersion(const FString &InternalVersion)
Definition GenericPlatformDriver.h:216
bool IsNVIDIA() const
Definition GenericPlatformDriver.h:193
void SetNVIDIA()
Definition GenericPlatformDriver.h:188
FString GetUnifiedDriverVersion() const
Definition GenericPlatformDriver.h:249
bool IsAMD() const
Definition GenericPlatformDriver.h:191
FString ProviderName
Definition GenericPlatformDriver.h:164
FString DeviceDescription
Definition GenericPlatformDriver.h:161
FString InternalDriverVersion
Definition GenericPlatformDriver.h:167
bool IsValid() const
Definition GenericPlatformDriver.h:178
uint32 VendorId
Definition GenericPlatformDriver.h:158
FString DriverDate
Definition GenericPlatformDriver.h:173
void SetQualcomm()
Definition GenericPlatformDriver.h:189
FString RHIName
Definition GenericPlatformDriver.h:176
static FString GetIntelUnifiedVersion(const FString &InternalVersion)
Definition GenericPlatformDriver.h:232
bool IsSameDriverVersionGeneration(const FDriverVersion &UnifiedDriverVersion) const
Definition GenericPlatformDriver.h:201
void SetIntel()
Definition GenericPlatformDriver.h:187
bool IsIntel() const
Definition GenericPlatformDriver.h:192
FString UserDriverVersion
Definition GenericPlatformDriver.h:170
bool IsQualcomm() const
Definition GenericPlatformDriver.h:194
void SetAMD()
Definition GenericPlatformDriver.h:186
static CORE_API bool Value(const TCHAR *Stream, const TCHAR *Match, FName &Name)
Definition Parse.cpp:584
Definition GenericPlatformDriver.h:456
FSuggestedDriverEntry(const TCHAR *Entry)
Definition GenericPlatformDriver.h:459
FSuggestedDriverEntry()=default
bool AppliesToDriver(const FGPUDriverInfo &Info, uint32 &OutNumSatisfiedConstraints)
Definition GenericPlatformDriver.h:473
FString SuggestedDriverVersion
Definition GenericPlatformDriver.h:483
bool IsValid()
Definition GenericPlatformDriver.h:478
static UE_FORCEINLINE_HINT int32 Atoi(const CharType *String)
Definition CString.h:1173
Definition Optional.h:131
OptionalType & Emplace(ArgsType &&... Args)
Definition Optional.h:323