diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-11-02 09:28:34 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-11-02 09:28:34 +0100 |
| commit | c8d98f6901b36147b516c76044e2c41dda7452a5 (patch) | |
| tree | 2f49d6248d7045d6c36ef91e6f19650637a056e6 /src | |
| parent | 38cfeeb558b38e941c26ad4f91c6cdabadc86795 (diff) | |
| download | box64-c8d98f6901b36147b516c76044e2c41dda7452a5.tar.gz box64-c8d98f6901b36147b516c76044e2c41dda7452a5.zip | |
[RCFIEL] Add an option to force usage of native EGL/GLESv2 library
Diffstat (limited to 'src')
| -rw-r--r-- | src/core.c | 8 | ||||
| -rw-r--r-- | src/librarian/library.c | 7 | ||||
| -rw-r--r-- | src/tools/rcfile.c | 1 |
3 files changed, 16 insertions, 0 deletions
diff --git a/src/core.c b/src/core.c index 89f0c78b..a7ca5e32 100644 --- a/src/core.c +++ b/src/core.c @@ -159,6 +159,7 @@ int box64_x11glx = 1; int allow_missing_libs = 0; int box64_prefer_emulated = 0; int box64_prefer_wrapped = 0; +int box64_wrap_egl = 0; int box64_sse_flushto0 = 0; int box64_x87_no80bits = 0; int box64_sync_rounding = 0; @@ -1517,6 +1518,13 @@ void LoadEnvVars(box64context_t *context) printf_log(LOG_INFO, "BOX64: Prefering Emulated libs\n"); } } + if(getenv("BOX64_WRAP_EGL")) { + char* p = getenv("BOX64_WRAP_EGL"); + if (*p>='0' && *p<='1') { + box64_wrap_egl = *p - '0'; + if(box64_wrap_egl) printf_log(LOG_INFO, "BOX64: Prefering Native(Wrapped) EGL/GLESv2\n"); + } + } if(getenv("BOX64_NOSIGSEGV")) { if (strcmp(getenv("BOX64_NOSIGSEGV"), "1")==0) { diff --git a/src/librarian/library.c b/src/librarian/library.c index b454a3ac..a4d4e97f 100644 --- a/src/librarian/library.c +++ b/src/librarian/library.c @@ -429,10 +429,17 @@ static const char* essential_libs[] = { "libxkbcommon-x11.so.0", "libpulse-simple.so.0", "libpulse.so.0", "libvulkan.so.1", "libvulkan.so", "ld-linux-x86-64.so.2", "crashhandler.so", "libtcmalloc_minimal.so.0", "libtcmalloc_minimal.so.4", "libanl.so.1" }; +static const char* essential_libs_egl[] = { + "libEGL.so", "libGLESv2.so" +}; static int isEssentialLib(const char* name) { for (unsigned int i=0; i<sizeof(essential_libs)/sizeof(essential_libs[0]); ++i) if(!strcmp(name, essential_libs[i])) return 1; + if(box64_wrap_egl) + for (unsigned int i=0; i<sizeof(essential_libs_egl)/sizeof(essential_libs_egl[0]); ++i) + if(!strcmp(name, essential_libs_egl[i])) + return 1; return 0; } diff --git a/src/tools/rcfile.c b/src/tools/rcfile.c index 5dd14dc4..9eeb5910 100644 --- a/src/tools/rcfile.c +++ b/src/tools/rcfile.c @@ -95,6 +95,7 @@ ENTRYSTRING_(BOX64_EMULATED_LIBS, emulated_libs) \ ENTRYBOOL(BOX64_ALLOWMISSINGLIBS, allow_missing_libs) \ ENTRYBOOL(BOX64_PREFER_WRAPPED, box64_prefer_wrapped) \ ENTRYBOOL(BOX64_PREFER_EMULATED, box64_prefer_emulated) \ +ENTRYBOOL(BOX64_WRAP_EGl, box64_wrap_egl) \ ENTRYBOOL(BOX64_CRASHHANDLER, box64_dummy_crashhandler) \ ENTRYBOOL(BOX64_NOPULSE, box64_nopulse) \ ENTRYBOOL(BOX64_NOGTK, box64_nogtk) \ |