You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-05 12:10:55 +00:00
Improve logic to detect whether vulkan is used for rendering
This commit is contained in:
@@ -275,16 +275,16 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
|
||||
return false;
|
||||
}
|
||||
|
||||
final String renderer = GodotLib.getGlobal("rendering/renderer/rendering_method");
|
||||
if (renderer.equals("gl_compatibility")) {
|
||||
mRenderView = new GodotGLRenderView(activity, this, xrMode, use_debug_opengl);
|
||||
} else {
|
||||
if (usesVulkan()) {
|
||||
if (!meetsVulkanRequirements(activity.getPackageManager())) {
|
||||
Log.e(TAG, "Missing requirements for vulkan support! Aborting...");
|
||||
alert(R.string.error_missing_vulkan_requirements_message, R.string.text_error_title, this::forceQuit);
|
||||
return false;
|
||||
}
|
||||
mRenderView = new GodotVulkanRenderView(activity, this);
|
||||
} else {
|
||||
// Fallback to openGl
|
||||
mRenderView = new GodotGLRenderView(activity, this, xrMode, use_debug_opengl);
|
||||
}
|
||||
|
||||
View view = mRenderView.getView();
|
||||
@@ -322,6 +322,15 @@ public class Godot extends Fragment implements SensorEventListener, IDownloaderC
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if `Vulkan` is used for rendering.
|
||||
*/
|
||||
private boolean usesVulkan() {
|
||||
final String renderer = GodotLib.getGlobal("rendering/renderer/rendering_method");
|
||||
final String renderingDevice = GodotLib.getGlobal("rendering/rendering_device/driver");
|
||||
return ("forward_plus".equals(renderer) || "mobile".equals(renderer)) && "vulkan".equals(renderingDevice);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the device meets the base requirements for Vulkan support, false otherwise.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user