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 \
|
LOCAL_SRC_FILES := fcl/fcl_bridge.c \
|
||||||
fcl/fcl_event.c \
|
fcl/fcl_event.c \
|
||||||
fcl/fcl_loader.c \
|
fcl/fcl_loader.c \
|
||||||
fcl/jre_launcher.c
|
fcl/jre_launcher.c \
|
||||||
|
fcl/utils.c
|
||||||
LOCAL_C_INCLUDES := $(LOCAL_PATH)/fcl/include
|
LOCAL_C_INCLUDES := $(LOCAL_PATH)/fcl/include
|
||||||
LOCAL_LDLIBS := -llog -ldl -landroid
|
LOCAL_LDLIBS := -llog -ldl -landroid
|
||||||
include $(BUILD_SHARED_LIBRARY)
|
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 <android/dlext.h>
|
||||||
#include "ctxbridges/bridge_tbl.h"
|
#include "ctxbridges/bridge_tbl.h"
|
||||||
#include "ctxbridges/osm_bridge.h"
|
#include "ctxbridges/osm_bridge.h"
|
||||||
|
#include "fcl/include/utils.h"
|
||||||
|
|
||||||
#define GLFW_CLIENT_API 0x22001
|
#define GLFW_CLIENT_API 0x22001
|
||||||
/* Consider GLFW_NO_API as Vulkan API */
|
/* Consider GLFW_NO_API as Vulkan API */
|
||||||
|
@ -181,6 +182,7 @@ void load_vulkan() {
|
||||||
void* vulkan_ptr = dlopen("libvulkan.so", RTLD_LAZY | RTLD_LOCAL);
|
void* vulkan_ptr = dlopen("libvulkan.so", RTLD_LAZY | RTLD_LOCAL);
|
||||||
printf("OSMDroid: loaded vulkan, ptr=%p\n", vulkan_ptr);
|
printf("OSMDroid: loaded vulkan, ptr=%p\n", vulkan_ptr);
|
||||||
set_vulkan_ptr(vulkan_ptr);
|
set_vulkan_ptr(vulkan_ptr);
|
||||||
|
printVulkanInfo(vulkan_ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
int pojavInitOpenGL() {
|
int pojavInitOpenGL() {
|
||||||
|
|
Loading…
Reference in New Issue