mirror of
				https://github.com/termux/termux-packages.git
				synced 2025-10-31 05:16:11 +00:00 
			
		
		
		
	- Fixes https://github.com/termux/termux-packages/issues/26526 - Fixes https://github.com/termux/termux-packages/issues/25371 - All patches seemed to only need minor rebasing and no other errors - Tested working on Samsung Galaxy S9 SM-G960U with Adreno 630 - Add unofficial Adreno 710+720 support found here https://gitlab.freedesktop.org/mesa/mesa/-/issues/13036 and heredb9f6d0b31- After3294cad341, a new change is required in order to preserve GPU acceleration in the edge case of **EGL+Zink+Turnip+Termux:X11+Adreno 630**. I have named this change `0018-preserve-egl-support-in-zink.patch` and it is an original creation based on my ~2 years of experience developing EGL software for running inside Termux:X11 on Samsung Galaxy S9 SM-G96U with Adreno 630. **Unfortunately, I do not know what the effects of this patch will be on other devices that I do not have, so please tell me ASAP if it appears to break Zink on your device**. - After622612f67e, the default behavior of Zink is to enable the "general layout" mode whenever Turnip is detected. In testing in Termux:X11 on Samsung Galaxy A70 SM-A705FN, that change is incorrect and results in severe artifacts in Firefox when Firefox has `gfx.webrender.all=true` and `gfx.x11-egl.force-disabled=true` set in `about:config`, so `0019-disable-general-layout-in-zink-for-turnip.patch` must be created to forcibly stop Zink from enabling "general layout" mode when Turnip is detected.
		
			
				
	
	
		
			41 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| mesa upstream code 'thinks' that if 'x11_dri3_open()'
 | |
| has a negative retval, then DRI3 EGL acceleration in Zink with the current settings
 | |
| is impossible in all cases and it disables Zink and falls back to software rendering.
 | |
| 
 | |
| However, Termux:X11 is a 3rd party edge case where, in actual testing,
 | |
| for a very long time throughout the past year of mesa releases,
 | |
| even if 'x11_dri3_open()' has a negative retval,
 | |
| for some reason Zink+Tunip GPU acceleration still works if force-enabled
 | |
| anytime that software rendering is not the initial default.
 | |
| 
 | |
| This 'Termux-unaware' upstream mesa codepath that fails to 'understand' the true
 | |
| capabilities of Zink+Turnip+Termux:X11 has gradually been building up in the background
 | |
| for the last several months, but in this commit:
 | |
| https://gitlab.freedesktop.org/mesa/mesa/-/commit/3294cad34159bd5317e3dfb0cb4e0ba5caca9f77
 | |
| the 'switch was flipped' to the new codepath, so to speak, locking vanilla mesa's EGL
 | |
| support away from the Zink+Turnip+Termux:X11 codepath unless some kind of intervention
 | |
| is performed, such as this patch.
 | |
| 
 | |
| --- a/src/egl/drivers/dri2/platform_x11_dri3.c
 | |
| +++ b/src/egl/drivers/dri2/platform_x11_dri3.c
 | |
| @@ -535,7 +535,7 @@ dri3_x11_connect(struct dri2_egl_display *dri2_dpy, bool swrast)
 | |
|              _eglLog(_EGL_WARNING, "DRI3: Failed to initialize");
 | |
|        }
 | |
|  
 | |
| -      return false;
 | |
| +      return true;
 | |
|     }
 | |
|  
 | |
|     loader_get_user_preferred_fd(&dri2_dpy->fd_render_gpu,
 | |
| --- a/src/egl/main/eglapi.c
 | |
| +++ b/src/egl/main/eglapi.c
 | |
| @@ -683,7 +683,7 @@ eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
 | |
|                   "Found 'LIBGL_ALWAYS_SOFTWARE' set, will use a CPU renderer");
 | |
|  
 | |
|        const char *env = os_get_option("MESA_LOADER_DRIVER_OVERRIDE");
 | |
| -      disp->Options.Zink = env && !strcmp(env, "zink");
 | |
| +      disp->Options.Zink = !env || !strcmp(env, "zink");
 | |
|  
 | |
|        const char *gallium_hud_env = os_get_option("GALLIUM_HUD");
 | |
|        disp->Options.GalliumHudWarn =
 |