14#define VULKAN_EXTENSION_NOT_PROMOTED UINT32_MAX
15#define VULKAN_EXTENSION_ENABLED 1
16#define VULKAN_EXTENSION_DISABLED 0
69 template <
typename ExtensionType>
171#define DEVICE_EXT_FLAG_SETTER(FLAG_NAME) [](FOptionalVulkanDeviceExtensions& ExtensionFlags) { ExtensionFlags.FLAG_NAME = 1; }
172#define INSTANCE_EXT_FLAG_SETTER(FLAG_NAME) [](FOptionalVulkanInstanceExtensions& ExtensionFlags) { ExtensionFlags.FLAG_NAME = 1; }
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
EVulkanVariableRateShadingPreference
Definition VulkanExtensions.h:21
#define VULKAN_EXTENSION_ENABLED
Definition VulkanExtensions.h:15
#define VULKAN_EXTENSION_NOT_PROMOTED
Definition VulkanExtensions.h:14
Definition VulkanExtensions.h:102
static TArray< const ANSICHAR * > ExternalExtensions
Definition VulkanExtensions.h:130
static TArray< VkExtensionProperties > GetDriverSupportedDeviceExtensions(VkPhysicalDevice Gpu, const ANSICHAR *LayerName=nullptr)
Definition VulkanExtensions.cpp:167
virtual void PostPhysicalDeviceProperties(FOptionalVulkanDeviceExtensions &ExtensionFlags)
Definition VulkanExtensions.h:116
virtual void PrePhysicalDeviceFeatures(VkPhysicalDeviceFeatures2KHR &PhysicalDeviceFeatures2)
Definition VulkanExtensions.h:118
TUniqueFunction< void(FOptionalVulkanDeviceExtensions &ExtensionFlags)> FlagSetter
Definition VulkanExtensions.h:136
struct FOptionalVulkanDeviceExtensionProperties & GetDeviceExtensionProperties()
Definition VulkanExtensions.cpp:151
bool bRequirementsPassed
Definition VulkanExtensions.h:139
FVulkanDevice * Device
Definition VulkanExtensions.h:135
virtual void PrePhysicalDeviceProperties(VkPhysicalDeviceProperties2KHR &PhysicalDeviceProperties2)
Definition VulkanExtensions.h:115
static FVulkanDeviceExtensionArray GetUESupportedDeviceExtensions(FVulkanDevice *InDevice, uint32 ApiVersion)
Definition VulkanExtensions.cpp:2246
virtual void PreCreateDevice(VkDeviceCreateInfo &DeviceInfo)
Definition VulkanExtensions.h:127
FVulkanDeviceExtension(FVulkanDevice *InDevice, const ANSICHAR *InExtensionName, int32 InEnabledInCode, uint32 InPromotedVersion=VULKAN_EXTENSION_NOT_PROMOTED, TUniqueFunction< void(FOptionalVulkanDeviceExtensions &ExtensionFlags)> &&InFlagSetter=nullptr, EExtensionActivation InActivation=FVulkanExtensionBase::AutoActivate)
Definition VulkanExtensions.h:105
virtual void PostPhysicalDeviceFeatures(FOptionalVulkanDeviceExtensions &ExtensionFlags)
Definition VulkanExtensions.h:119
Definition VulkanDevice.h:279
Definition VulkanExtensions.h:31
const ANSICHAR * ExtensionName
Definition VulkanExtensions.h:83
bool SetCore(uint32 ApiVersion)
Definition VulkanExtensions.h:57
bool bSupported
Definition VulkanExtensions.h:90
static int32 FindExtension(const TArray< TUniquePtr< ExtensionType > > &UEExtensions, const ANSICHAR *ExtensionName)
Definition VulkanExtensions.h:70
bool IsEnabled() const
Definition VulkanExtensions.h:60
const ANSICHAR * GetExtensionName() const
Definition VulkanExtensions.h:59
void SetSupported()
Definition VulkanExtensions.h:55
void SetActivated()
Definition VulkanExtensions.h:56
bool bEnabledInCode
Definition VulkanExtensions.h:87
bool InUse() const
Definition VulkanExtensions.h:64
bool IsCore()
Definition VulkanExtensions.h:62
EExtensionActivation
Definition VulkanExtensions.h:34
@ ManuallyActivate
Definition VulkanExtensions.h:41
@ AutoActivate
Definition VulkanExtensions.h:36
bool bCore
Definition VulkanExtensions.h:96
bool IsSupported() const
Definition VulkanExtensions.h:61
const uint32 PromotedVersion
Definition VulkanExtensions.h:84
virtual ~FVulkanExtensionBase()
Definition VulkanExtensions.h:53
bool bActivated
Definition VulkanExtensions.h:93
FVulkanExtensionBase(const ANSICHAR *InExtensionName, int32 InEnabledInCode, uint32 InPromotedVersion, EExtensionActivation InActivation)
Definition VulkanExtensions.h:44
Definition VulkanExtensions.h:145
static FVulkanInstanceExtensionArray GetUESupportedInstanceExtensions(uint32 ApiVersion)
Definition VulkanExtensions.cpp:2462
virtual void PreCreateInstance(VkInstanceCreateInfo &CreateInfo, FOptionalVulkanInstanceExtensions &ExtensionFlags)
Definition VulkanExtensions.h:156
TUniqueFunction< void(FOptionalVulkanInstanceExtensions &ExtensionFlags)> FlagSetter
Definition VulkanExtensions.h:167
static TArray< VkExtensionProperties > GetDriverSupportedInstanceExtensions(const ANSICHAR *LayerName=nullptr)
Definition VulkanExtensions.cpp:181
FVulkanInstanceExtension(const ANSICHAR *InExtensionName, int32 InEnabledInCode, uint32 InPromotedVersion=VULKAN_EXTENSION_NOT_PROMOTED, TUniqueFunction< void(FOptionalVulkanInstanceExtensions &ExtensionFlags)> &&InFlagSetter=nullptr, EExtensionActivation InActivation=FVulkanExtensionBase::AutoActivate)
Definition VulkanExtensions.h:148
static TArray< const ANSICHAR * > ExternalExtensions
Definition VulkanExtensions.h:164
Definition FunctionFwd.h:19
Definition UniquePtr.h:107
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition VulkanDevice.h:152
Definition VulkanDevice.h:39
Definition VulkanDynamicRHI.h:27
static UE_FORCEINLINE_HINT int32 Strcmp(const CharType *String1, const CharType *String2)
Definition CString.h:1018