diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-06-14 19:32:31 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2023-06-14 19:32:31 +0000 |
commit | b98fd78faea946257983900d153c6d1aa07437c8 (patch) | |
tree | 60d1017e39b1189a4ee5eefb58ba4319c9ceea47 | |
parent | 67bb03512b25a47b3895244c93b94c7ec4b1b6d8 (diff) | |
parent | a63ff676beaacfa351c7252f74caff3724925ac8 (diff) | |
download | qemu-b98fd78faea946257983900d153c6d1aa07437c8.tar.gz |
Merge "Use GLES 3.0+ on API 31+" into snap-temp-L93000000961281579
-rw-r--r-- | android-qemu2-glue/main.cpp | 28 |
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); |