![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include "VulkanAndroidPlatform.h"#include "../VulkanRayTracing.h"#include "../VulkanPipeline.h"#include "../VulkanRenderpass.h"#include <dlfcn.h>#include "Android/AndroidWindow.h"#include "Android/AndroidPlatformFramePacer.h"#include "Math/UnrealMathUtility.h"#include "Android/AndroidApplication.h"#include "Android/AndroidPlatformMisc.h"#include "Android/AndroidJavaEnv.h"#include "Android/AndroidJNI.h"#include "Misc/ConfigCacheIni.h"#include "GenericPlatform/GenericPlatformCrashContext.h"#include "../VulkanExtensions.h"#include <android/sharedmem_jni.h>#include <sys/mman.h>#include "ProfilingDebugging/ScopedTimers.h"#include "Android/AndroidDynamicRHI.h"#include "PSOMetrics.h"#include "../VulkanContext.h"Classes | |
| struct | GraphicsPipelineCreateInfo |
| struct | FVKRemoteProgramCompileJNI |
Namespaces | |
| namespace | AndroidVulkan |
| namespace | AndroidVulkanService |
Macros | |
| #define | INSTANCE_EXT_FLAG_SETTER(FLAG_NAME) [](FOptionalVulkanInstanceExtensions& ExtensionFlags) { ExtensionFlags.FLAG_NAME = 1; } |
| #define | DEFINE_VK_ENTRYPOINTS(Type, Func) Type VulkanDynamicAPI::Func = NULL; |
| #define | VULKAN_MALI_LAYER_NAME "VK_LAYER_ARM_AGA" |
| #define | CHECK_VK_ENTRYPOINTS(Type, Func) if (VulkanDynamicAPI::Func == NULL) { bFoundAllEntryPoints = false; UE_LOG(LogRHI, Warning, TEXT("Failed to find entry point for %s"), TEXT(#Func)); } |
| #define | GET_VK_ENTRYPOINTS(Type, Func) VulkanDynamicAPI::Func = (Type)dlsym(VulkanLib, #Func); |
| #define | GETINSTANCE_VK_ENTRYPOINTS(Type, Func) VulkanDynamicAPI::Func = (Type)VulkanDynamicAPI::vkGetInstanceProcAddr(inInstance, #Func); |
| #define | CLEAR_VK_ENTRYPOINTS(Type, Func) VulkanDynamicAPI::Func = nullptr; |
| #define | COPY_TO_BUFFER(Dst, Src, Size) Dst.Append((const char*)Src, Size); |
| #define | CHECK_JNI_EXCEPTIONS(env) if (env->ExceptionCheck()) {env->ExceptionDescribe();env->ExceptionClear();} |
Functions | |
| bool | IsInAndroidEventThread () |
| void | CharArrayToBuffer (const TArray< const ANSICHAR * > &CharArray, TArray< char > &MemoryStream) |
| void | GetVKStructsFromPNext (const void *InNext, TMap< VkStructureType, const void * > &VkStructs, const TArray< VkStructureType > &ValidTypes) |
| void | HandleGraphicsPipelineCreatePNext (const VkGraphicsPipelineCreateInfo *PipelineCreateInfo, TArray< char > &MemoryStream) |
| void | HandlePipelineShaderStagePNext (const VkPipelineShaderStageCreateInfo *CreateInfo, TArray< char > &MemoryStream) |
| void | HandleSubpassDescriptionPNext (VkSubpassDescription2 *SubpassDescription, TArray< char > &MemoryStream) |
| void | HandleDepthStencilAttachmentPNext (const VkAttachmentReference2 *Attachment, TArray< char > &MemoryStream) |
| void | PipelineToBinary (FVulkanDevice *Device, const VkGraphicsPipelineCreateInfo *PipelineInfo, const FGfxPipelineDesc *GfxEntry, const FVulkanRenderTargetLayout *RTLayout, TArray< char > &MemoryStream) |
Variables | |
| int32 | GVulkanCPURenderThreadFramePacer |
| int32 | GPrintVulkanVsyncDebug |
| int32 | GVulkanExtensionFramePacer = 1 |
| std::atomic< bool > | AndroidVulkanService::GRemoteCompileServicesStarted = false |
| std::atomic< bool > | AndroidVulkanService::GRemoteCompileServicesActive = false |
| std::atomic< bool > | AndroidVulkanService::bOneTimeErrorEncountered = false |
| std::atomic< int > | AndroidVulkanService::TotalErrors = 0 |
| struct FVKRemoteProgramCompileJNI | VKRemoteProgramCompileJNI |
| #define CHECK_JNI_EXCEPTIONS | ( | env | ) | if (env->ExceptionCheck()) {env->ExceptionDescribe();env->ExceptionClear();} |
| #define CHECK_VK_ENTRYPOINTS | ( | Type, | |
| Func | |||
| ) | if (VulkanDynamicAPI::Func == NULL) { bFoundAllEntryPoints = false; UE_LOG(LogRHI, Warning, TEXT("Failed to find entry point for %s"), TEXT(#Func)); } |
| #define CLEAR_VK_ENTRYPOINTS | ( | Type, | |
| Func | |||
| ) | VulkanDynamicAPI::Func = nullptr; |
| #define COPY_TO_BUFFER | ( | Dst, | |
| Src, | |||
| Size | |||
| ) | Dst.Append((const char*)Src, Size); |
| #define GETINSTANCE_VK_ENTRYPOINTS | ( | Type, | |
| Func | |||
| ) | VulkanDynamicAPI::Func = (Type)VulkanDynamicAPI::vkGetInstanceProcAddr(inInstance, #Func); |
| #define INSTANCE_EXT_FLAG_SETTER | ( | FLAG_NAME | ) | [](FOptionalVulkanInstanceExtensions& ExtensionFlags) { ExtensionFlags.FLAG_NAME = 1; } |
| #define VULKAN_MALI_LAYER_NAME "VK_LAYER_ARM_AGA" |
| void CharArrayToBuffer | ( | const TArray< const ANSICHAR * > & | CharArray, |
| TArray< char > & | MemoryStream | ||
| ) |
| void GetVKStructsFromPNext | ( | const void * | InNext, |
| TMap< VkStructureType, const void * > & | VkStructs, | ||
| const TArray< VkStructureType > & | ValidTypes | ||
| ) |
| void HandleDepthStencilAttachmentPNext | ( | const VkAttachmentReference2 * | Attachment, |
| TArray< char > & | MemoryStream | ||
| ) |
| void HandleGraphicsPipelineCreatePNext | ( | const VkGraphicsPipelineCreateInfo * | PipelineCreateInfo, |
| TArray< char > & | MemoryStream | ||
| ) |
| void HandlePipelineShaderStagePNext | ( | const VkPipelineShaderStageCreateInfo * | CreateInfo, |
| TArray< char > & | MemoryStream | ||
| ) |
| void HandleSubpassDescriptionPNext | ( | VkSubpassDescription2 * | SubpassDescription, |
| TArray< char > & | MemoryStream | ||
| ) |
|
extern |
| void PipelineToBinary | ( | FVulkanDevice * | Device, |
| const VkGraphicsPipelineCreateInfo * | PipelineInfo, | ||
| const FGfxPipelineDesc * | GfxEntry, | ||
| const FVulkanRenderTargetLayout * | RTLayout, | ||
| TArray< char > & | MemoryStream | ||
| ) |
|
extern |
|
extern |
| int32 GVulkanExtensionFramePacer = 1 |
| struct FVKRemoteProgramCompileJNI VKRemoteProgramCompileJNI |