aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-06-14 19:32:31 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2023-06-14 19:32:31 +0000
commitb98fd78faea946257983900d153c6d1aa07437c8 (patch)
tree60d1017e39b1189a4ee5eefb58ba4319c9ceea47
parent67bb03512b25a47b3895244c93b94c7ec4b1b6d8 (diff)
parenta63ff676beaacfa351c7252f74caff3724925ac8 (diff)
downloadqemu-b98fd78faea946257983900d153c6d1aa07437c8.tar.gz
Merge "Use GLES 3.0+ on API 31+" into snap-temp-L93000000961281579
-rw-r--r--android-qemu2-glue/main.cpp28
1 files changed, 24 insertions, 4 deletions
diff --git a/android-qemu2-glue/main.cpp b/android-qemu2-glue/main.cpp
index b82f744ca1..cc5aa44f8a 100644
--- a/android-qemu2-glue/main.cpp
+++ b/android-qemu2-glue/main.cpp
@@ -1092,13 +1092,23 @@ static int startEmulatorWithMinConfig(int argc,
{
// Should enable OpenGL ES 3.x?
if (skin_winsys_get_preferred_gles_apilevel() ==
+ WINSYS_GLESAPILEVEL_PREFERENCE_COMPAT) {
+ fc::setIfNotOverridenOrGuestDisabled(fc::GLESDynamicVersion, false);
+ }
+
+ if (skin_winsys_get_preferred_gles_apilevel() ==
WINSYS_GLESAPILEVEL_PREFERENCE_MAX) {
fc::setIfNotOverridenOrGuestDisabled(fc::GLESDynamicVersion, true);
}
- if (skin_winsys_get_preferred_gles_apilevel() ==
- WINSYS_GLESAPILEVEL_PREFERENCE_COMPAT) {
- fc::setEnabledOverride(fc::GLESDynamicVersion, false);
+ if (apiLevel >= 31) {
+ if (skin_winsys_get_preferred_gles_apilevel() ==
+ WINSYS_GLESAPILEVEL_PREFERENCE_COMPAT) {
+ dwarning("API level %d requires OpenGL ES 3.0+, attempting to"
+ " turn on OpenGL ES 3.0/3.1", apiLevel);
+ }
+ // API 31 needs GLES 3.0+ to boot
+ fc::setIfNotOverridenOrGuestDisabled(fc::GLESDynamicVersion, true);
}
if (fc::isEnabled(fc::ForceANGLE)) {
@@ -2590,7 +2600,7 @@ extern "C" int main(int argc, char** argv) {
if (skin_winsys_get_preferred_gles_apilevel() ==
WINSYS_GLESAPILEVEL_PREFERENCE_COMPAT ||
System::get()->getProgramBitness() == 32) {
- fc::setEnabledOverride(fc::GLESDynamicVersion, false);
+ fc::setIfNotOverridenOrGuestDisabled(fc::GLESDynamicVersion, false);
}
// In build environment, enable gles3 if possible
@@ -2599,6 +2609,16 @@ extern "C" int main(int argc, char** argv) {
true);
}
+ // API 31 needs GLES 3.0+ to boot
+ if (apiLevel >= 31) {
+ if (skin_winsys_get_preferred_gles_apilevel() ==
+ WINSYS_GLESAPILEVEL_PREFERENCE_COMPAT) {
+ dwarning("API level %d requires OpenGL ES 3.0+, attempting to"
+ " turn on OpenGL ES 3.0/3.1", apiLevel);
+ }
+ fc::setIfNotOverridenOrGuestDisabled(fc::GLESDynamicVersion, true);
+ }
+
#ifdef __linux__
// On Linux enable it by default.
fc::setIfNotOverridenOrGuestDisabled(fc::GLESDynamicVersion, true);