print vulkan version when use system driver
This commit is contained in:
parent
238208f8fb
commit
df863ccfc3
|
@ -18,7 +18,8 @@ LOCAL_SHARED_LIBRARIES := bytehook
|
|||
LOCAL_SRC_FILES := fcl/fcl_bridge.c \
|
||||
fcl/fcl_event.c \
|
||||
fcl/fcl_loader.c \
|
||||
fcl/jre_launcher.c
|
||||
fcl/jre_launcher.c \
|
||||
fcl/utils.c
|
||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/fcl/include
|
||||
LOCAL_LDLIBS := -llog -ldl -landroid
|
||||
include $(BUILD_SHARED_LIBRARY)
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
//
|
||||
// Created by mio on 2024/8/22.
|
||||
//
|
||||
|
||||
#ifndef FOLD_CRAFT_LAUNCHER_UTILS_H
|
||||
#define FOLD_CRAFT_LAUNCHER_UTILS_H
|
||||
|
||||
void printVulkanInfo(void*);
|
||||
|
||||
#endif //FOLD_CRAFT_LAUNCHER_UTILS_H
|
|
@ -0,0 +1,46 @@
|
|||
//
|
||||
// Created by mio on 2024/8/22.
|
||||
//
|
||||
#include <vulkan/vulkan.h>
|
||||
#include <dlfcn.h>
|
||||
#include "utils.h"
|
||||
#include "fcl_internal.h"
|
||||
|
||||
void printVulkanInfo(void *handle) {
|
||||
PFN_vkCreateInstance vkCreateInstance;
|
||||
PFN_vkDestroyInstance vkDestroyInstance;
|
||||
PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices;
|
||||
PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures;
|
||||
PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceProperties;
|
||||
vkCreateInstance = dlsym(handle, "vkCreateInstance");
|
||||
vkDestroyInstance = dlsym(handle, "vkDestroyInstance");
|
||||
vkEnumeratePhysicalDevices = dlsym(handle, "vkEnumeratePhysicalDevices");
|
||||
vkGetPhysicalDeviceFeatures = dlsym(handle, "vkGetPhysicalDeviceFeatures");
|
||||
vkGetPhysicalDeviceProperties = dlsym(handle, "vkGetPhysicalDeviceProperties");
|
||||
VkInstanceCreateInfo instanceCreateInfo = {
|
||||
.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO
|
||||
};
|
||||
VkInstance instance/* = malloc(sizeof(VkInstance))*/;
|
||||
if (vkCreateInstance(&instanceCreateInfo, 0, &instance) != 0) {
|
||||
FCL_INTERNAL_LOG("vkCreateInstance error");
|
||||
return;
|
||||
}
|
||||
uint32_t gpu_count;
|
||||
if (vkEnumeratePhysicalDevices(instance, &gpu_count, NULL) != 0) {
|
||||
FCL_INTERNAL_LOG("vkEnumeratePhysicalDevices error");
|
||||
return;
|
||||
}
|
||||
VkPhysicalDevice *gpus = (VkPhysicalDevice *) malloc(sizeof(VkPhysicalDevice) * gpu_count);
|
||||
if (vkEnumeratePhysicalDevices(instance, &gpu_count, gpus) != 0) {
|
||||
FCL_INTERNAL_LOG("vkEnumeratePhysicalDevices error");
|
||||
return;
|
||||
}
|
||||
VkPhysicalDevice gpu = gpus[0];
|
||||
VkPhysicalDeviceProperties gpuProperties;
|
||||
vkGetPhysicalDeviceProperties(gpu, &gpuProperties);
|
||||
FCL_INTERNAL_LOG("Vulkan api version:%d.%d.%d",
|
||||
VK_VERSION_MAJOR(gpuProperties.apiVersion),
|
||||
VK_VERSION_MINOR(gpuProperties.apiVersion),
|
||||
VK_VERSION_PATCH(gpuProperties.apiVersion));
|
||||
vkDestroyInstance(instance, 0);
|
||||
}
|
|
@ -27,6 +27,7 @@
|
|||
#include <android/dlext.h>
|
||||
#include "ctxbridges/bridge_tbl.h"
|
||||
#include "ctxbridges/osm_bridge.h"
|
||||
#include "fcl/include/utils.h"
|
||||
|
||||
#define GLFW_CLIENT_API 0x22001
|
||||
/* Consider GLFW_NO_API as Vulkan API */
|
||||
|
@ -181,6 +182,7 @@ void load_vulkan() {
|
|||
void* vulkan_ptr = dlopen("libvulkan.so", RTLD_LAZY | RTLD_LOCAL);
|
||||
printf("OSMDroid: loaded vulkan, ptr=%p\n", vulkan_ptr);
|
||||
set_vulkan_ptr(vulkan_ptr);
|
||||
printVulkanInfo(vulkan_ptr);
|
||||
}
|
||||
|
||||
int pojavInitOpenGL() {
|
||||
|
|
Loading…
Reference in New Issue