fix
This commit is contained in:
parent
c6c5a4ba5a
commit
02833d69ad
|
@ -47,8 +47,8 @@ public class FCLInput implements View.OnCapturedPointerListener, GamepadHandler
|
||||||
public static final HashMap<Integer, Integer> MOUSE_MAP = new HashMap<Integer, Integer>() {
|
public static final HashMap<Integer, Integer> MOUSE_MAP = new HashMap<Integer, Integer>() {
|
||||||
{
|
{
|
||||||
put(MOUSE_LEFT, FCLBridge.Button1);
|
put(MOUSE_LEFT, FCLBridge.Button1);
|
||||||
put(MOUSE_MIDDLE, FCLBridge.Button2);
|
put(MOUSE_MIDDLE, FCLBridge.Button3);
|
||||||
put(MOUSE_RIGHT, FCLBridge.Button3);
|
put(MOUSE_RIGHT, FCLBridge.Button2);
|
||||||
put(MOUSE_SCROLL_UP, FCLBridge.Button4);
|
put(MOUSE_SCROLL_UP, FCLBridge.Button4);
|
||||||
put(MOUSE_SCROLL_DOWN, FCLBridge.Button5);
|
put(MOUSE_SCROLL_DOWN, FCLBridge.Button5);
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,7 +172,6 @@ public final class FCLGameLauncher extends DefaultLauncher {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FCLBridge launch() throws IOException, InterruptedException {
|
public FCLBridge launch() throws IOException, InterruptedException {
|
||||||
FileUtils.deleteDirectoryQuietly(new File("/data/user_de/0/com.tungsten.fcl/code_cache"));
|
|
||||||
generateOptionsTxt();
|
generateOptionsTxt();
|
||||||
// Sodium
|
// Sodium
|
||||||
modifyIfConfigDetected("sodium-mixins.properties", "", "mixin.features.chunk_rendering=false", false, FCLConfig.Renderer.RENDERER_GL4ES, FCLConfig.Renderer.RENDERER_VGPU);
|
modifyIfConfigDetected("sodium-mixins.properties", "", "mixin.features.chunk_rendering=false", false, FCLConfig.Renderer.RENDERER_GL4ES, FCLConfig.Renderer.RENDERER_VGPU);
|
||||||
|
|
|
@ -202,16 +202,12 @@ public class FCLauncher {
|
||||||
envMap.put("MESA_LOADER_DRIVER_OVERRIDE", "zink");
|
envMap.put("MESA_LOADER_DRIVER_OVERRIDE", "zink");
|
||||||
envMap.put("VTEST_SOCKET_NAME", new File(config.getContext().getCacheDir().getAbsolutePath(), ".virgl_test").getAbsolutePath());
|
envMap.put("VTEST_SOCKET_NAME", new File(config.getContext().getCacheDir().getAbsolutePath(), ".virgl_test").getAbsolutePath());
|
||||||
if (renderer == FCLConfig.Renderer.RENDERER_VIRGL) {
|
if (renderer == FCLConfig.Renderer.RENDERER_VIRGL) {
|
||||||
envMap.put("GALLIUM_DRIVER", "virpipe");
|
|
||||||
envMap.put("OSMESA_NO_FLUSH_FRONTBUFFER", "1");
|
envMap.put("OSMESA_NO_FLUSH_FRONTBUFFER", "1");
|
||||||
envMap.put("POJAV_RENDERER","opengles3_virgl");
|
envMap.put("POJAV_RENDERER","gallium_virgl");
|
||||||
} else if (renderer == FCLConfig.Renderer.RENDERER_ZINK) {
|
} else if (renderer == FCLConfig.Renderer.RENDERER_ZINK) {
|
||||||
envMap.put("GALLIUM_DRIVER", "zink");
|
|
||||||
envMap.put("POJAV_RENDERER","vulkan_zink");
|
envMap.put("POJAV_RENDERER","vulkan_zink");
|
||||||
} else if (renderer == FCLConfig.Renderer.RENDERER_FREEDRENO) {
|
} else if (renderer == FCLConfig.Renderer.RENDERER_FREEDRENO) {
|
||||||
envMap.put("GALLIUM_DRIVER", "freedreno");
|
envMap.put("POJAV_RENDERER","gallium_freedreno");
|
||||||
envMap.put("MESA_LOADER_DRIVER_OVERRIDE", "kgsl");
|
|
||||||
envMap.put("POJAV_RENDERER","vulkan_zink");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -166,7 +166,7 @@ static void set_vulkan_ptr(void* ptr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void load_vulkan() {
|
void load_vulkan() {
|
||||||
if(getenv("VULKAN_DRIVER_SYSTEM") == NULL &&
|
if (getenv("VULKAN_DRIVER_SYSTEM") == NULL &&
|
||||||
android_get_device_api_level() >= 28) { // the loader does not support below that
|
android_get_device_api_level() >= 28) { // the loader does not support below that
|
||||||
#ifdef ADRENO_POSSIBLE
|
#ifdef ADRENO_POSSIBLE
|
||||||
void* result = load_turnip_vulkan();
|
void* result = load_turnip_vulkan();
|
||||||
|
@ -186,28 +186,35 @@ void load_vulkan() {
|
||||||
int pojavInitOpenGL() {
|
int pojavInitOpenGL() {
|
||||||
// Only affects GL4ES as of now
|
// Only affects GL4ES as of now
|
||||||
const char *forceVsync = getenv("FORCE_VSYNC");
|
const char *forceVsync = getenv("FORCE_VSYNC");
|
||||||
if (strcmp(forceVsync, "true") == 0)
|
if (!strcmp(forceVsync, "true"))
|
||||||
pojav_environ->force_vsync = true;
|
pojav_environ->force_vsync = true;
|
||||||
|
|
||||||
// NOTE: Override for now.
|
// NOTE: Override for now.
|
||||||
const char *renderer = getenv("POJAV_RENDERER");
|
const char *renderer = getenv("POJAV_RENDERER");
|
||||||
if (strcmp(renderer, "opengles3_virgl") == 0) {
|
if (!strncmp("opengles", renderer, 8)) {
|
||||||
|
pojav_environ->config_renderer = RENDERER_GL4ES;
|
||||||
|
set_gl_bridge_tbl();
|
||||||
|
} else if (!strcmp(renderer, "gallium_virgl")) {
|
||||||
pojav_environ->config_renderer = RENDERER_VIRGL;
|
pojav_environ->config_renderer = RENDERER_VIRGL;
|
||||||
|
setenv("GALLIUM_DRIVER", "virpipe", 1);
|
||||||
loadSymbolsVirGL();
|
loadSymbolsVirGL();
|
||||||
virglInit();
|
virglInit();
|
||||||
return 0;
|
return 0;
|
||||||
} else if (strncmp("opengles", renderer, 8) == 0) {
|
} else if (!strcmp(renderer, "vulkan_zink")) {
|
||||||
pojav_environ->config_renderer = RENDERER_GL4ES;
|
|
||||||
set_gl_bridge_tbl();
|
|
||||||
} else if (strcmp(renderer, "vulkan_zink") == 0) {
|
|
||||||
pojav_environ->config_renderer = RENDERER_VK_ZINK;
|
pojav_environ->config_renderer = RENDERER_VK_ZINK;
|
||||||
load_vulkan();
|
load_vulkan();
|
||||||
setenv("GALLIUM_DRIVER","zink",1);
|
setenv("GALLIUM_DRIVER", "zink", 1);
|
||||||
|
set_osm_bridge_tbl();
|
||||||
|
} else if (!strcmp(renderer, "gallium_freedreno")) {
|
||||||
|
pojav_environ->config_renderer = RENDERER_VK_ZINK;
|
||||||
|
load_vulkan();
|
||||||
|
setenv("GALLIUM_DRIVER", "freedreno", 1);
|
||||||
|
setenv("MESA_LOADER_DRIVER_OVERRIDE", "kgsl", 1);
|
||||||
set_osm_bridge_tbl();
|
set_osm_bridge_tbl();
|
||||||
}
|
}
|
||||||
if(br_init()) {
|
|
||||||
br_setup_window();
|
if(br_init()) br_setup_window();
|
||||||
}
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,29 +246,25 @@ EXTERNAL_API void pojavSetWindowHint(int hint, int value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
EXTERNAL_API void pojavSwapBuffers() {
|
EXTERNAL_API void pojavSwapBuffers() {
|
||||||
if (pojav_environ->config_renderer == RENDERER_VIRGL) {
|
if (pojav_environ->config_renderer == RENDERER_VIRGL)
|
||||||
virglSwapBuffers();
|
virglSwapBuffers();
|
||||||
} else {
|
else br_swap_buffers();
|
||||||
br_swap_buffers();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EXTERNAL_API void pojavMakeCurrent(void* window) {
|
EXTERNAL_API void pojavMakeCurrent(void* window) {
|
||||||
if (pojav_environ->config_renderer == RENDERER_VIRGL)
|
if (pojav_environ->config_renderer == RENDERER_VIRGL)
|
||||||
{
|
|
||||||
virglMakeCurrent(window);
|
virglMakeCurrent(window);
|
||||||
} else {
|
else br_make_current((basic_render_window_t*)window);
|
||||||
br_make_current((basic_render_window_t*)window);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EXTERNAL_API void* pojavCreateContext(void* contextSrc) {
|
EXTERNAL_API void* pojavCreateContext(void* contextSrc) {
|
||||||
if (pojav_environ->config_renderer == RENDERER_VULKAN) {
|
if (pojav_environ->config_renderer == RENDERER_VULKAN)
|
||||||
return (void *) pojav_environ->pojavWindow;
|
return (void *) pojav_environ->pojavWindow;
|
||||||
} else if (pojav_environ->config_renderer == RENDERER_VIRGL) {
|
|
||||||
|
if (pojav_environ->config_renderer == RENDERER_VIRGL)
|
||||||
return virglCreateContext(contextSrc);
|
return virglCreateContext(contextSrc);
|
||||||
}
|
|
||||||
return br_init_context((basic_render_window_t*)contextSrc);
|
return br_init_context((basic_render_window_t*)contextSrc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -276,10 +279,8 @@ Java_org_lwjgl_vulkan_VK_getVulkanDriverHandle(ABI_COMPAT JNIEnv *env, ABI_COMPA
|
||||||
}
|
}
|
||||||
|
|
||||||
EXTERNAL_API void pojavSwapInterval(int interval) {
|
EXTERNAL_API void pojavSwapInterval(int interval) {
|
||||||
if (pojav_environ->config_renderer == RENDERER_VIRGL) {
|
if (pojav_environ->config_renderer == RENDERER_VIRGL)
|
||||||
virglSwapInterval(interval);
|
virglSwapInterval(interval);
|
||||||
} else {
|
else br_swap_interval(interval);
|
||||||
br_swap_interval(interval);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue