Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

addpkg(main/termux-wsi-layer): 0.0.1 #22353

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

addpkg(main/termux-wsi-layer): 0.0.1 #22353

wants to merge 1 commit into from

Conversation

twaik
Copy link
Member

@twaik twaik commented Nov 21, 2024

Works on my device.
And has much better performance than llvmpipe and virpipe.
It improves only EGL+GLES2 performance, GL is untouched.
Vulkan implementation is planned.

llvmpipe
~ $ GALLIUM_DRIVER=llvmpipe glmark2-es2 
libEGL warning: DRI3: Screen seems not DRI3 capable
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    llvmpipe (LLVM 19.1.2, 128 bits)
    GL_VERSION:     OpenGL ES 3.2 Mesa 24.2.6
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 83 FrameTime: 12.083 ms
[build] use-vbo=true: FPS: 84 FrameTime: 12.045 ms
[texture] texture-filter=nearest: FPS: 120 FrameTime: 8.380 ms
[texture] texture-filter=linear: FPS: 104 FrameTime: 9.633 ms
[texture] texture-filter=mipmap: FPS: 73 FrameTime: 13.701 ms
[shading] shading=gouraud: FPS: 56 FrameTime: 18.162 ms
[shading] shading=blinn-phong-inf: FPS: 41 FrameTime: 24.862 ms
[shading] shading=phong: FPS: 33 FrameTime: 30.466 ms
[shading] shading=cel: FPS: 33 FrameTime: 30.941 ms
[bump] bump-render=high-poly: FPS: 22 FrameTime: 47.619 ms
[bump] bump-render=normals: FPS: 84 FrameTime: 11.934 ms
[bump] bump-render=height: FPS: 85 FrameTime: 11.835 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 35 FrameTime: 28.684 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 17 FrameTime: 62.301 ms
[pulsar] light=false:quads=5:texture=false: FPS: 83 FrameTime: 12.114 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 9 FrameTime: 119.660 ms
[desktop] effect=shadow:windows=4: FPS: 22 FrameTime: 45.672 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 31 FrameTime: 33.199 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 31 FrameTime: 33.106 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 31 FrameTime: 32.751 ms
[ideas] speed=duration: FPS: 53 FrameTime: 19.183 ms
[jellyfish] <default>: FPS: 19 FrameTime: 53.189 ms
[terrain] <default>: FPS: 2 FrameTime: 806.721 ms
[shadow] <default>: FPS: 34 FrameTime: 30.071 ms
[refract] <default>: FPS: 4 FrameTime: 263.993 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 70 FrameTime: 14.348 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 51 FrameTime: 19.955 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 70 FrameTime: 14.395 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 54 FrameTime: 18.733 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 35 FrameTime: 29.349 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 54 FrameTime: 18.767 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 54 FrameTime: 18.815 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 50 FrameTime: 20.332 ms
=======================================================
                                  glmark2 Score: 48 
=======================================================
virpipe+virglrenderer-android+angle-null backend
~ $ GALLIUM_DRIVER=virpipe glmark2-es2 # working with --angle-null
libEGL warning: DRI3: Screen seems not DRI3 capable
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    virgl (ANGLE (ARM, Vulkan 1.1.213 (Mali-G77 (0x90800011)), ...)
    GL_VERSION:     OpenGL ES 3.1 Mesa 24.2.7
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 65 FrameTime: 15.385 ms
[build] use-vbo=true: FPS: 70 FrameTime: 14.330 ms
[texture] texture-filter=nearest: FPS: 68 FrameTime: 14.740 ms
[texture] texture-filter=linear: FPS: 68 FrameTime: 14.908 ms
[texture] texture-filter=mipmap: FPS: 68 FrameTime: 14.743 ms
[shading] shading=gouraud: FPS: 68 FrameTime: 14.796 ms
[shading] shading=blinn-phong-inf: FPS: 72 FrameTime: 14.043 ms
[shading] shading=phong: FPS: 69 FrameTime: 14.648 ms
[shading] shading=cel: FPS: 64 FrameTime: 15.642 ms
[bump] bump-render=high-poly: FPS: 58 FrameTime: 17.285 ms
[bump] bump-render=normals: FPS: 70 FrameTime: 14.305 ms
[bump] bump-render=height: FPS: 67 FrameTime: 14.947 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 64 FrameTime: 15.848 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 55 FrameTime: 18.233 ms
[pulsar] light=false:quads=5:texture=false: FPS: 69 FrameTime: 14.691 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 41 FrameTime: 24.937 ms
[desktop] effect=shadow:windows=4: FPS: 62 FrameTime: 16.260 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 41 FrameTime: 24.490 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 46 FrameTime: 21.968 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 44 FrameTime: 22.757 ms
[ideas] speed=duration: FPS: 46 FrameTime: 21.939 ms
[jellyfish] <default>: FPS: 67 FrameTime: 15.058 ms
[terrain] <default>: FPS: 23 FrameTime: 43.545 ms
[shadow] <default>: FPS: 62 FrameTime: 16.190 ms
[refract] <default>: FPS: 29 FrameTime: 35.364 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 73 FrameTime: 13.796 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 74 FrameTime: 13.571 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 68 FrameTime: 14.837 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 67 FrameTime: 15.129 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 66 FrameTime: 15.180 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 71 FrameTime: 14.213 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 66 FrameTime: 15.161 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 66 FrameTime: 15.173 ms
=======================================================
                                  glmark2 Score: 59 
=======================================================
termux-wsi-layer
~ $ glmark2-es2 
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      ARM
    GL_RENDERER:    Mali-G77
    GL_VERSION:     OpenGL ES 3.2 v1.r38p1-01bet0-mbs2v41_0.8320a750c7c9e2666df3500d139b434f
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 318 FrameTime: 3.154 ms
[build] use-vbo=true: FPS: 344 FrameTime: 2.908 ms
[texture] texture-filter=nearest: FPS: 377 FrameTime: 2.657 ms
[texture] texture-filter=linear: FPS: 371 FrameTime: 2.698 ms
[texture] texture-filter=mipmap: FPS: 389 FrameTime: 2.577 ms
[shading] shading=gouraud: FPS: 317 FrameTime: 3.161 ms
[shading] shading=blinn-phong-inf: FPS: 314 FrameTime: 3.194 ms
[shading] shading=phong: FPS: 312 FrameTime: 3.212 ms
[shading] shading=cel: FPS: 302 FrameTime: 3.316 ms
[bump] bump-render=high-poly: FPS: 213 FrameTime: 4.698 ms
[bump] bump-render=normals: FPS: 415 FrameTime: 2.410 ms
[bump] bump-render=height: FPS: 415 FrameTime: 2.411 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 367 FrameTime: 2.732 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 274 FrameTime: 3.662 ms
[pulsar] light=false:quads=5:texture=false: FPS: 361 FrameTime: 2.771 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 326 FrameTime: 3.077 ms
[desktop] effect=shadow:windows=4: FPS: 404 FrameTime: 2.478 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 120 FrameTime: 8.339 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 110 FrameTime: 9.109 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 135 FrameTime: 7.430 ms
[ideas] speed=duration: FPS: 155 FrameTime: 6.453 ms
[jellyfish] <default>: FPS: 284 FrameTime: 3.528 ms
[terrain] <default>: FPS: 59 FrameTime: 17.181 ms
[shadow] <default>: FPS: 350 FrameTime: 2.863 ms
[refract] <default>: FPS: 84 FrameTime: 11.997 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 360 FrameTime: 2.781 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 360 FrameTime: 2.781 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 361 FrameTime: 2.776 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 370 FrameTime: 2.707 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 375 FrameTime: 2.668 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 370 FrameTime: 2.708 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 365 FrameTime: 2.744 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 360 FrameTime: 2.781 ms
=======================================================
                                  glmark2 Score: 303 
=======================================================

@twaik
Copy link
Member Author

twaik commented Nov 21, 2024

I do not have any multithread example to test, so currently multithread support is not implemented.

@twaik twaik marked this pull request as draft November 21, 2024 08:34
@hansm629
Copy link

@twaik
It doesn't seem to work on Exynos 2400
Am I missing something? (add environment variable, maybe?)

zink via mesa-vulkan-icd-wrapper works.

~$ glmark2-es2
Error: eglCreateWindowSurface failed with error: 0x300d
Error: eglCreateWindowSurface failed with error: 0x300d
Error: CanvasGeneric: Invalid EGL state
Error: main: Could not initialize canvas
~$ glmark2
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    zink Vulkan 1.3(Samsung Xclipse 940 (SAMSUNG_PROPRIETARY))
    GL_VERSION:     4.6 (Compatibility Profile) Mesa 24.2.7
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 632 FrameTime: 1.583 ms
~$ vkmark
=======================================================
    vkmark 2017.08
=======================================================
    Vendor ID:      0x144D
    Device ID:      0x2600200
    Device Name:    Samsung Xclipse 940
    Driver Version: 8388608
    Device UUID:    35f18c726c2d5685ae5893b649517b92
=======================================================
[vertex] device-local=true: FPS: 6650 FrameTime: 0.150 ms
[vertex] device-local=false: FPS: 6743 FrameTime: 0.148 ms
[texture] anisotropy=0: FPS: 6267 FrameTime: 0.160 ms

@twaik
Copy link
Member Author

twaik commented Nov 23, 2024

@hansm629 the solution is still experimental and is not supposed to work on all possible devices because it uses APIs not supposed to be used in non-vendor apps. I am still working on it. Later I will publish a version with improved debugging.

@hansm629
Copy link

@twaik
Thanks for your reply. I will test it on Adreno 650, Adreno 740, Adreno 750, Mali-G78.

@hansm629
Copy link

hansm629 commented Nov 23, 2024

@twaik

I conducted additional testing.

Interestingly, the Adreno 650 GPU, which should have had the lowest performance, delivered the highest performance, while the Adreno 750 GPU, which should have been the most powerful, delivered the lowest performance.

Additionally, on all Adreno series GPU, the following error messages were consistently displayed during the [desktop] and [buffer] benchmarks:

Error: Requested MapBuffer VBO update method but GL_OES_mapbuffer is not supported!

It seems that the reason why it didn’t work on the Xclipse 940 is likely due to the use of ANGLE EGL.
The Xclipse series GPU do not support Android EGL driver and operate via ANGLE EGL implemented through Vulkan + ANGLE.

I hope this information will be helpful for future debugging!😀

glmark2-es2

ARM Mali-G78MP14 = Score: 709

~$ glmark2-es2
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      ARM
    GL_RENDERER:    Mali-G78
    GL_VERSION:     OpenGL ES 3.2 v1.r38p0-01eac0-mbs2v41_0.fbda7a2431aa2b386a4490f824f8fcc5
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 753 FrameTime: 1.328 ms
[build] use-vbo=true: FPS: 871 FrameTime: 1.148 ms
[texture] texture-filter=nearest: FPS: 1108 FrameTime: 0.903 ms
[texture] texture-filter=linear: FPS: 1154 FrameTime: 0.867 ms
[texture] texture-filter=mipmap: FPS: 1099 FrameTime: 0.910 ms
[shading] shading=gouraud: FPS: 632 FrameTime: 1.584 ms
[shading] shading=blinn-phong-inf: FPS: 686 FrameTime: 1.458 ms
[shading] shading=phong: FPS: 714 FrameTime: 1.401 ms
[shading] shading=cel: FPS: 665 FrameTime: 1.505 ms
[bump] bump-render=high-poly: FPS: 298 FrameTime: 3.363 ms
[bump] bump-render=normals: FPS: 883 FrameTime: 1.133 ms
[bump] bump-render=height: FPS: 1029 FrameTime: 0.973 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 892 FrameTime: 1.121 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 456 FrameTime: 2.195 ms
[pulsar] light=false:quads=5:texture=false: FPS: 950 FrameTime: 1.054 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 375 FrameTime: 2.668 ms
[desktop] effect=shadow:windows=4: FPS: 713 FrameTime: 1.404 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 286 FrameTime: 3.509 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 229 FrameTime: 4.379 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 347 FrameTime: 2.889 ms
[ideas] speed=duration: FPS: 324 FrameTime: 3.094 ms
[jellyfish] <default>: FPS: 525 FrameTime: 1.906 ms
[terrain] <default>: FPS: 162 FrameTime: 6.186 ms
[shadow] <default>: FPS: 649 FrameTime: 1.541 ms
[refract] <default>: FPS: 196 FrameTime: 5.121 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 1001 FrameTime: 0.999 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 991 FrameTime: 1.010 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 948 FrameTime: 1.056 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1028 FrameTime: 0.973 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 857 FrameTime: 1.167 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 920 FrameTime: 1.088 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 835 FrameTime: 1.199 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 867 FrameTime: 1.154 ms
=======================================================
                                  glmark2 Score: 709 
=======================================================

Samsung Xclipse 940 = failed

~$ glmark2-es2
Error: eglCreateWindowSurface failed with error: 0x300d
Error: eglCreateWindowSurface failed with error: 0x300d
Error: CanvasGeneric: Invalid EGL state
Error: main: Could not initialize canvas

Qualcomm Adreno 650 = Score: 1167

~$ glmark2-es2
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Qualcomm
    GL_RENDERER:    Adreno (TM) 650
    GL_VERSION:     OpenGL ES 3.2 [email protected] (GIT@193b2ee, I593c16c433, 1633593732) (Date:10/07/21)
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=16 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 1620 FrameTime: 0.618 ms
[build] use-vbo=true: FPS: 1466 FrameTime: 0.683 ms
[texture] texture-filter=nearest: FPS: 1435 FrameTime: 0.697 ms
[texture] texture-filter=linear: FPS: 1450 FrameTime: 0.690 ms
[texture] texture-filter=mipmap: FPS: 1236 FrameTime: 0.810 ms
[shading] shading=gouraud: FPS: 1352 FrameTime: 0.740 ms
[shading] shading=blinn-phong-inf: FPS: 1343 FrameTime: 0.745 ms
[shading] shading=phong: FPS: 1333 FrameTime: 0.751 ms
[shading] shading=cel: FPS: 1289 FrameTime: 0.776 ms
[bump] bump-render=high-poly: FPS: 975 FrameTime: 1.026 ms
[bump] bump-render=normals: FPS: 1476 FrameTime: 0.678 ms
[bump] bump-render=height: FPS: 1393 FrameTime: 0.718 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 1055 FrameTime: 0.948 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 856 FrameTime: 1.168 ms
[pulsar] light=false:quads=5:texture=false: FPS: 1424 FrameTime: 0.703 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 501 FrameTime: 1.997 ms
[desktop] effect=shadow:windows=4: FPS: 835 FrameTime: 1.199 ms
Error: Requested MapBuffer VBO update method but GL_OES_mapbuffer is not supported!
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 119 FrameTime: 8.411 ms
Error: Requested MapBuffer VBO update method but GL_OES_mapbuffer is not supported!
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[ideas] speed=duration: FPS: 643 FrameTime: 1.557 ms
[jellyfish] <default>: FPS: 1146 FrameTime: 0.873 ms
[terrain] <default>: FPS: 163 FrameTime: 6.156 ms
[shadow] <default>: FPS: 1159 FrameTime: 0.863 ms
[refract] <default>: FPS: 209 FrameTime: 4.798 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 1464 FrameTime: 0.683 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 1407 FrameTime: 0.711 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 1471 FrameTime: 0.680 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1416 FrameTime: 0.706 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 1514 FrameTime: 0.661 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1476 FrameTime: 0.678 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 1555 FrameTime: 0.643 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 1452 FrameTime: 0.689 ms
=======================================================
                                  glmark2 Score: 1167 
=======================================================

Qualcomm Adreno 740 = Score: 845

~$ glmark2-es2
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Qualcomm
    GL_RENDERER:    Adreno (TM) 740
    GL_VERSION:     OpenGL ES 3.2 [email protected] (GIT@7b26bdd942, Iab69c31769, 1693222181) (Date:08/28/23)
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=16 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 943 FrameTime: 1.061 ms
[build] use-vbo=true: FPS: 1011 FrameTime: 0.990 ms
[texture] texture-filter=nearest: FPS: 939 FrameTime: 1.066 ms
[texture] texture-filter=linear: FPS: 977 FrameTime: 1.024 ms
[texture] texture-filter=mipmap: FPS: 981 FrameTime: 1.020 ms
[shading] shading=gouraud: FPS: 976 FrameTime: 1.025 ms
[shading] shading=blinn-phong-inf: FPS: 936 FrameTime: 1.069 ms
[shading] shading=phong: FPS: 917 FrameTime: 1.091 ms
[shading] shading=cel: FPS: 919 FrameTime: 1.089 ms
[bump] bump-render=high-poly: FPS: 757 FrameTime: 1.322 ms
[bump] bump-render=normals: FPS: 1029 FrameTime: 0.973 ms
[bump] bump-render=height: FPS: 1015 FrameTime: 0.986 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 901 FrameTime: 1.111 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 816 FrameTime: 1.227 ms
[pulsar] light=false:quads=5:texture=false: FPS: 959 FrameTime: 1.043 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 520 FrameTime: 1.924 ms
[desktop] effect=shadow:windows=4: FPS: 694 FrameTime: 1.442 ms
Error: Requested MapBuffer VBO update method but GL_OES_mapbuffer is not supported!
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 444 FrameTime: 2.254 ms
Error: Requested MapBuffer VBO update method but GL_OES_mapbuffer is not supported!
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[ideas] speed=duration: FPS: 464 FrameTime: 2.159 ms
[jellyfish] <default>: FPS: 851 FrameTime: 1.176 ms
[terrain] <default>: FPS: 176 FrameTime: 5.709 ms
[shadow] <default>: FPS: 823 FrameTime: 1.217 ms
[refract] <default>: FPS: 287 FrameTime: 3.487 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 995 FrameTime: 1.006 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 970 FrameTime: 1.031 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 981 FrameTime: 1.020 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 991 FrameTime: 1.009 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 979 FrameTime: 1.022 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1012 FrameTime: 0.989 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 994 FrameTime: 1.007 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 990 FrameTime: 1.010 ms
=======================================================
                                  glmark2 Score: 845 
=======================================================

Qualcomm Adreno 750 = Score: 670

~$ glmark2-es2
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Qualcomm
    GL_RENDERER:    Adreno (TM) 750
    GL_VERSION:     OpenGL ES 3.2 [email protected] (GIT@11e73fe00c, I4ff0bacd4f, 1710154332) (Date:03/11/24)
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=16 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 697 FrameTime: 1.436 ms
[build] use-vbo=true: FPS: 733 FrameTime: 1.365 ms
[texture] texture-filter=nearest: FPS: 720 FrameTime: 1.390 ms
[texture] texture-filter=linear: FPS: 719 FrameTime: 1.392 ms
[texture] texture-filter=mipmap: FPS: 826 FrameTime: 1.212 ms
[shading] shading=gouraud: FPS: 1000 FrameTime: 1.000 ms
[shading] shading=blinn-phong-inf: FPS: 715 FrameTime: 1.400 ms
[shading] shading=phong: FPS: 731 FrameTime: 1.369 ms
[shading] shading=cel: FPS: 714 FrameTime: 1.402 ms
[bump] bump-render=high-poly: FPS: 642 FrameTime: 1.558 ms
[bump] bump-render=normals: FPS: 723 FrameTime: 1.384 ms
[bump] bump-render=height: FPS: 741 FrameTime: 1.351 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 691 FrameTime: 1.449 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 660 FrameTime: 1.516 ms
[pulsar] light=false:quads=5:texture=false: FPS: 720 FrameTime: 1.389 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 461 FrameTime: 2.171 ms
[desktop] effect=shadow:windows=4: FPS: 653 FrameTime: 1.534 ms
Error: Requested MapBuffer VBO update method but GL_OES_mapbuffer is not supported!
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 383 FrameTime: 2.613 ms
Error: Requested MapBuffer VBO update method but GL_OES_mapbuffer is not supported!
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[ideas] speed=duration: FPS: 437 FrameTime: 2.292 ms
[jellyfish] <default>: FPS: 696 FrameTime: 1.438 ms
[terrain] <default>: FPS: 175 FrameTime: 5.735 ms
[shadow] <default>: FPS: 670 FrameTime: 1.494 ms
[refract] <default>: FPS: 284 FrameTime: 3.522 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 762 FrameTime: 1.312 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 749 FrameTime: 1.336 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 780 FrameTime: 1.282 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 766 FrameTime: 1.307 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 754 FrameTime: 1.328 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 748 FrameTime: 1.338 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 740 FrameTime: 1.353 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 733 FrameTime: 1.365 ms
=======================================================
                                  glmark2 Score: 670 
=======================================================

robertkirkman added a commit to robertkirkman/tur that referenced this pull request Nov 24, 2024
I am pretty sure upstream Luanti has mostly already done this on **all its X11-based
official targets**, but I did not yet do this
to Luanti-on-TUR because I have not had time to finish fixing + testing
this mode.

In particular I believe that this mode has a unique potential to
possibly engage with twaik's `termux-wsi-layer` and possibly benefit
from an extremely huge performance boost on some specific devices, if it
can be made to work with it. termux/termux-packages#22353

However, unfortunately right now when I try to use this PR with
`termux-wsi-layer` installed on a device where it works with
`glmark2-es2`, I see this error

```
Thread 1 "luanti" received signal SIGSEGV, Segmentation fault.
0x0000007fad9782b0 in XGetVisualInfo ()
   from /data/data/com.termux/files/usr/lib/libX11.so
(gdb) bt
   from /data/data/com.termux/files/usr/lib/libX11.so
    config=0xb400007d1ca54f00, attribute=12334, value=0x7fffffd464)
    at /data/data/com.termux/files/home/termux-packages/packages/termux-wsi-layer/egl.c:133
    this=0xb400007daca1c9b0)
    at /data/data/com.termux/files/home/.termux-build/luanti/src/irr/src/CEGLManager.cpp:185
    this=this@entry=0xb400007ddca220d0)
    at /data/data/com.termux/files/home/.termux-build/luanti/src/irr/src/CIrrDeviceLinux.cpp:414
    this=0xb400007ddca220d0, param=...)
    at /data/data/com.termux/files/home/.termux-build/luanti/src/irr/src/CIrrDeviceLinux.cpp:166
    at /data/data/com.termux/files/home/.termux-build/luanti/src/irr/src/Irrlicht.cpp:66
    at /data/data/com.termux/files/home/.termux-build/luanti/src/src/client/renderingengine.cpp:151
    receiver=0xb400007d9ca1d630)
    at /data/data/com.termux/files/home/.termux-build/luanti/src/src/client/renderingengine.cpp:206
    at /data/data/com.termux/files/home/.termux-build/luanti/src/src/client/clientlauncher.cpp:290
    cmd_args=...)
    at /data/data/com.termux/files/home/.termux-build/luanti/src/src/client/clientlauncher.cpp:98
    at /data/data/com.termux/files/home/.termux-build/luanti/src/src/main.cpp:264
(gdb)
```

`0001-force-egl-priority-over-glx.patch`: this is
minetest/minetest#15286 but applied to
Luanti-on-TUR

`0005-toggle-on-the-recent-migration-away-from-sdl2.patch`: this is
minetest/minetest#15284 but applied to
Luanti-on-TUR

`0006-fix-incompatible-type-ekey-code.patch`: I wrote this, this is necessary to fix a
minor build error when SDL2 is disabled in Luanti
robertkirkman added a commit to robertkirkman/tur that referenced this pull request Nov 24, 2024
I am pretty sure upstream Luanti has mostly already done this on **all its X11-based
official targets**, but I did not yet do this
to Luanti-on-TUR because I have not had time to finish fixing + testing
this mode.

In particular I believe that this mode has a unique potential to
possibly engage with twaik's `termux-wsi-layer` and possibly benefit
from an extremely huge performance boost on some specific devices, if it
can be made to work with it. termux/termux-packages#22353

However, unfortunately right now when I try to use this PR with
`termux-wsi-layer` installed on a device where it works with
`glmark2-es2`, I see this error

```
Thread 1 "luanti" received signal SIGSEGV, Segmentation fault.
0x0000007fad9782b0 in XGetVisualInfo ()
   from /data/data/com.termux/files/usr/lib/libX11.so
(gdb) bt
   from /data/data/com.termux/files/usr/lib/libX11.so
    config=0xb400007d1ca54f00, attribute=12334, value=0x7fffffd464)
    at /data/data/com.termux/files/home/termux-packages/packages/termux-wsi-layer/egl.c:133
    this=0xb400007daca1c9b0)
    at /data/data/com.termux/files/home/.termux-build/luanti/src/irr/src/CEGLManager.cpp:185
    this=this@entry=0xb400007ddca220d0)
    at /data/data/com.termux/files/home/.termux-build/luanti/src/irr/src/CIrrDeviceLinux.cpp:414
    this=0xb400007ddca220d0, param=...)
    at /data/data/com.termux/files/home/.termux-build/luanti/src/irr/src/CIrrDeviceLinux.cpp:166
    at /data/data/com.termux/files/home/.termux-build/luanti/src/irr/src/Irrlicht.cpp:66
    at /data/data/com.termux/files/home/.termux-build/luanti/src/src/client/renderingengine.cpp:151
    receiver=0xb400007d9ca1d630)
    at /data/data/com.termux/files/home/.termux-build/luanti/src/src/client/renderingengine.cpp:206
    at /data/data/com.termux/files/home/.termux-build/luanti/src/src/client/clientlauncher.cpp:290
    cmd_args=...)
    at /data/data/com.termux/files/home/.termux-build/luanti/src/src/client/clientlauncher.cpp:98
    at /data/data/com.termux/files/home/.termux-build/luanti/src/src/main.cpp:264
(gdb)
```

`0001-force-egl-priority-over-glx.patch`: this is
minetest/minetest#15286 but applied to
Luanti-on-TUR

`0005-toggle-on-the-recent-migration-away-from-sdl2.patch`: this is
minetest/minetest#15284 but applied to
Luanti-on-TUR

`0006-fix-incompatible-type-ekey-code.patch`: I wrote this, this is necessary to fix a
minor build error when SDL2 is disabled in Luanti
@twaik twaik force-pushed the termux-wsi-layer branch 5 times, most recently from be697ef to 697540d Compare November 24, 2024 09:45
@twaik
Copy link
Member Author

twaik commented Nov 24, 2024

@hansm629 can you please check newer version on devices where the package fails to work?
Please, do export ANW_TRACE=1 before starting test, it will report some additional debug stuff.

@hansm629
Copy link

@twaik
I'll give you feedback after testing!

@hansm629
Copy link

hansm629 commented Nov 24, 2024

@twaik
This is the result tested on Samsung Xclipse 940 GPU.
Please check.😀

~$ export ANW_TRACE=1
~$ glmark2-es2
Error: Invoking GetConfigAttrib ended with error EGL_BAD_DISPLAY (0x3008)
...after billions of similar error...
Segmentation fault

@twaik twaik force-pushed the termux-wsi-layer branch 2 times, most recently from 5c526dd to cf59b8d Compare November 24, 2024 11:36
@twaik
Copy link
Member Author

twaik commented Nov 24, 2024

@hansm629 fixed error in newer version.

@twaik twaik force-pushed the termux-wsi-layer branch 2 times, most recently from dfa490b to 62d8188 Compare November 24, 2024 12:49
@hansm629
Copy link

@twaik
Here are the test results for the new version.

~$ export ANW_TRACE=1
~$ glmark2-es2
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:219: TermuxNativeWindow_query(win 0xb400006ef4a88940 what IS_VALID value 0x7fd6b925b4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:182: TermuxNativeWindow_setSwapInterval(win 0xb400006ef4a88940 interval 1)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:219: TermuxNativeWindow_query(win 0xb400006ef4a88940 what FORMAT value 0x7fd6b923e4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:159: TermuxNativeWindow_incRef(base 0xb400006ef4a88940 awin 0xb400006ef4a88940 win 0xb400006ef4a888d0)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:328: TermuxNativeWindow_perform(win 0xb400006ef4a88940 unimplemented operation 31 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:166: TermuxNativeWindow_decRef(base 0xb400006ef4a88940 awin 0xb400006ef4a88940 win 0xb400006ef4a888d0)
Error: Invoking eglCreateWindowSurface ended with error EGL_BAD_SURFACE (0x300D)
Error: eglCreateWindowSurface failed with error: 0x300d
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:219: TermuxNativeWindow_query(win 0xb400006ef4a8c140 what IS_VALID value 0x7fd6b92594)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:182: TermuxNativeWindow_setSwapInterval(win 0xb400006ef4a8c140 interval 1)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:219: TermuxNativeWindow_query(win 0xb400006ef4a8c140 what FORMAT value 0x7fd6b923c4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:159: TermuxNativeWindow_incRef(base 0xb400006ef4a8c140 awin 0xb400006ef4a8c140 win 0xb400006ef4a8c0d0)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:328: TermuxNativeWindow_perform(win 0xb400006ef4a8c140 unimplemented operation 31 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:166: TermuxNativeWindow_decRef(base 0xb400006ef4a8c140 awin 0xb400006ef4a8c140 win 0xb400006ef4a8c0d0)
Error: Invoking eglCreateWindowSurface ended with error EGL_BAD_SURFACE (0x300D)
Error: eglCreateWindowSurface failed with error: 0x300d
Error: CanvasGeneric: Invalid EGL state
Error: main: Could not initialize canvas

@twaik twaik force-pushed the termux-wsi-layer branch 2 times, most recently from 16fde5b to af475c1 Compare November 26, 2024 13:53
@twaik
Copy link
Member Author

twaik commented Nov 26, 2024

It is ready.

@hansm629
Copy link

@twaik
For some reason it runs with llvmpipe.

~$ dpkg -i '/data/data/com.termux/files/home/Downloads/debs/termux-wsi-layer_0.0.1_aarch64.deb' 
(Reading database ... 261829 files and directories currently installed.)
Preparing to unpack .../termux-wsi-layer_0.0.1_aarch64.deb ...
Unpacking termux-wsi-layer (0.0.1) over (0.0.1) ...
Setting up termux-wsi-layer (0.0.1) ...

~$ export ANW_TRACE=1

~$ glmark2-es2
libEGL warning: DRI3: Screen seems not DRI3 capable
libEGL warning: DRI3: Screen seems not DRI3 capable
MESA: error: ZINK: vkCreateInstance failed (VK_ERROR_INCOMPATIBLE_DRIVER)
libEGL warning: egl: failed to create dri2 screen
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    llvmpipe (LLVM 19.1.4, 128 bits)
    GL_VERSION:     OpenGL ES 3.2 Mesa 24.2.7
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 180 FrameTime: 5.564 ms
[build] use-vbo=true: FPS: 180 FrameTime: 5.572 ms
=======================================================
                                  glmark2 Score: 179 
=======================================================

@twaik
Copy link
Member Author

twaik commented Nov 26, 2024

Looks like it was a linking error. Fixed it.

robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Nov 26, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](termux#22353) or [new virglrenderer](termux#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in
  Termux:X11 settings
@hansm629
Copy link

@twaik
Test results!
I think there's a progress from this version!😀

~$ export ANW_TRACE=1
~$ glmark2-es2
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what IS_VALID value 0x7ffc5e9634)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:268: TermuxNativeWindow_setSwapInterval(win 0xb400007d0b2dd2d8 interval 1)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what FORMAT value 0x7ffc5e9464)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:162: TermuxNativeWindow_incRef(base 0xb400007d0b2dd2d8 awin 0xb400007d0b2dd2d8 win 0xb400007d0b2dd260)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:443: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 GET_CONSUMER_USAGE64 0xb400007c4b2e06d0 (819) (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:401: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 API_CONNECT 1 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what DEFAULT_WIDTH value 0x7ffc5e8f34)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what DEFAULT_HEIGHT value 0x7ffc5e8f30)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what TRANSFORM_HINT value 0x7ffc5e8f2c)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MAX_BUFFER_COUNT value 0x7ffc5e8f28)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MIN_UNDEQUEUED_BUFFERS value 0x7ffc5e8f24)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what DEFAULT_WIDTH value 0x7ffc5e9084)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what DEFAULT_HEIGHT value 0x7ffc5e9080)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what TRANSFORM_HINT value 0x7ffc5e907c)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MAX_BUFFER_COUNT value 0x7ffc5e9078)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MIN_UNDEQUEUED_BUFFERS value 0x7ffc5e9074)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MIN_UNDEQUEUED_BUFFERS value 0x7ffc5e90a4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MAX_BUFFER_COUNT value 0x7ffc5e90a4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MIN_UNDEQUEUED_BUFFERS value 0x7ffc5e90a4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MAX_BUFFER_COUNT value 0x7ffc5e90a4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what WIDTH value 0x7ffc5e8ef4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what HEIGHT value 0x7ffc5e8ef4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:448: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_DEQUEUE_TIMEOUT -1 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:268: TermuxNativeWindow_setSwapInterval(win 0xb400007d0b2dd2d8 interval 1)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:419: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_SHARED_BUFFER_MODE 0 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:424: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_AUTO_REFRESH 0 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:391: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFERS_FORMAT 1 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:414: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFERS_DATASPACE 0 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:386: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFERS_DIMENSIONS 800 600 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:376: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFERS_TRANSFORM 0 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:396: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_SCALING_MODE 1 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:396: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_SCALING_MODE 0 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MIN_UNDEQUEUED_BUFFERS value 0x7ffc5e8ed4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:372: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFER_COUNT 3 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:376: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFER_COUNT -1 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:436: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_USAGE64 2867 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what TRANSFORM_HINT value 0x7ffc5e8ea4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:429: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 GET_REFRESH_CYCLE_DURATION 0x7ffc5e8e98 (16676994) (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:162: TermuxNativeWindow_incRef(base 0xb400007d0b2dd2d8 awin 0xb400007d0b2dd2d8 win 0xb400007d0b2dd260)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what DEFAULT_WIDTH value 0x7ffc5e8ff4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what DEFAULT_HEIGHT value 0x7ffc5e8ff0)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what TRANSFORM_HINT value 0x7ffc5e8fec)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MAX_BUFFER_COUNT value 0x7ffc5e8fe8)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MIN_UNDEQUEUED_BUFFERS value 0x7ffc5e8fe4)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what WIDTH value 0x7ffc5e8e64)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what HEIGHT value 0x7ffc5e8e64)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:410: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 API_DISCONNECT (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:401: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 API_CONNECT 1 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:448: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_DEQUEUE_TIMEOUT -1 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:268: TermuxNativeWindow_setSwapInterval(win 0xb400007d0b2dd2d8 interval 1)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:419: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_SHARED_BUFFER_MODE 0 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:424: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_AUTO_REFRESH 0 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:391: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFERS_FORMAT 1 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:414: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFERS_DATASPACE 0 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:386: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFERS_DIMENSIONS 800 600 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:376: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFERS_TRANSFORM 0 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:396: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_SCALING_MODE 1 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:396: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_SCALING_MODE 0 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:419: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_SHARED_BUFFER_MODE 1 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what MIN_UNDEQUEUED_BUFFERS value 0x7ffc5e8e44)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:372: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFER_COUNT 3 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:376: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_BUFFER_COUNT -1 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:436: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 SET_USAGE64 536873779 (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what TRANSFORM_HINT value 0x7ffc5e8e14)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:429: TermuxNativeWindow_perform(win 0xb400007d0b2dd2d8 GET_REFRESH_CYCLE_DURATION 0x7ffc5e8e08 (16676994) (no op))
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:468: TermuxNativeWindow_dequeueBuffer(win 0xb400007d0b2dd2d8 buffer 0x7ffc5e8d38 fenceFd 0xb400007cab2e0890)
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Samsung Electronics Co., Ltd.
    GL_RENDERER:    ANGLE (Samsung Xclipse 940) on Vulkan 1.3.264
    GL_VERSION:     OpenGL ES 3.2 ANGLE git hash: fdd6aba2eb9a
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=24 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false:/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:567: TermuxNativeWindow_queueBuffer(win 0xb400007d0b2dd2d8 buffer 0xb400007e4b2df000 fenceFd 18)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:468: TermuxNativeWindow_dequeueBuffer(win 0xb400007d0b2dd2d8 buffer 0x7ffc5e9000 fenceFd 0x7ffc5e8ffc)
/data/data/com.termux/files/usr/opt/termux-wsi-layer/src/window.c:305: TermuxNativeWindow_query(win 0xb400007d0b2dd2d8 what TRANSFORM_HINT value 0x7ffc5e9000)
Error: Invoking SwapBuffers ended with error EGL_BAD_SURFACE (0x300D)
Segmentation fault

@twaik
Copy link
Member Author

twaik commented Nov 26, 2024

Can you please post the logcat output after a segfault? It should be long, so consider redirection to a file please.

@hansm629
Copy link

@twaik
I will post logcat with adb after work tomorrow!

robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Nov 26, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](termux#22353) or [new virglrenderer](termux#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in Termux:X11 settings
robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Nov 27, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](termux#22353) or [new virglrenderer](termux#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in Termux:X11 settings

- I made 6 patches, but the patch 0001-enable-egl-without-sdl2.patch is
  a cherry pick of minetest/minetest@4838eb2
robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Nov 27, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](termux#22353) or [new virglrenderer](termux#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in Termux:X11 settings

- I made 6 patches, but the patch 0001-enable-egl-without-sdl2.patch is
  a cherry pick of minetest/minetest@4838eb2
robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Nov 27, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](termux#22353) or [new virglrenderer](termux#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in Termux:X11 settings

- I made 6 patches, but the patch 0001-enable-egl-without-sdl2.patch is
  a cherry pick of minetest/minetest@4838eb2
@hansm629
Copy link

@twaik
Here is the logcat extracted from the latest build version!
The capacity is too large, so I'll share it via Google Drive.

https://drive.google.com/file/d/14rHlgTWqxGGndUMXj9KHxBlHcUizef0y/view?usp=sharing

@twaik
Copy link
Member Author

twaik commented Nov 27, 2024

I do not think I can debug this. It looks like the source of the problem is using VNDK api, which is supposed to be used only by vendors. It should not even try to work in the case if vendor (samsung) changed internal ANativeWindow structure, query or perform key bindings or something else. Probably better way will be EGL api wrapping instead of implementing ANativeWindow related stuff, even in the case if we will have less weaker EGL support we will have much wider range of supported devices.

@twaik twaik closed this Nov 27, 2024
@twaik twaik reopened this Nov 27, 2024
robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Nov 27, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](termux#22353) or [new virglrenderer](termux#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in Termux:X11 settings

- I made 6 patches, but the patch 0001-enable-egl-without-sdl2.patch is
  a cherry pick of minetest/minetest@4838eb2
@hansm629
Copy link

@twaik
For Xclipse series GPU, it seems that another solution will be necessary to enable EGL acceleration in Termux.😢
Once termux-wsi-layer supports Vulkan in the future, we might need to think about how to proceed.

By the way, when I tried to run the Chromium browser with termux-wsi-layer, the following error occurred, and it didn’t run.

Is it possible for the Chromium browser to work with termux-wsi-layer?

Qualcomm Adreno 740 = Score: 870

~$ glmark2-es2
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Qualcomm
    GL_RENDERER:    Adreno (TM) 740
    GL_VERSION:     OpenGL ES 3.2 [email protected] (GIT@7b26bdd942, Iab69c31769, 1693222181) (Date:08/28/23)
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=16 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
[build] use-vbo=false: FPS: 966 FrameTime: 1.035 ms
[build] use-vbo=true: FPS: 1018 FrameTime: 0.983 ms
[texture] texture-filter=nearest: FPS: 982 FrameTime: 1.019 ms
[texture] texture-filter=linear: FPS: 1011 FrameTime: 0.989 ms
[texture] texture-filter=mipmap: FPS: 1022 FrameTime: 0.979 ms
[shading] shading=gouraud: FPS: 957 FrameTime: 1.045 ms
[shading] shading=blinn-phong-inf: FPS: 950 FrameTime: 1.053 ms
[shading] shading=phong: FPS: 928 FrameTime: 1.078 ms
[shading] shading=cel: FPS: 921 FrameTime: 1.086 ms
[bump] bump-render=high-poly: FPS: 764 FrameTime: 1.310 ms
[bump] bump-render=normals: FPS: 1008 FrameTime: 0.993 ms
[bump] bump-render=height: FPS: 1011 FrameTime: 0.990 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 886 FrameTime: 1.129 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 824 FrameTime: 1.214 ms
[pulsar] light=false:quads=5:texture=false: FPS: 972 FrameTime: 1.030 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 547 FrameTime: 1.831 ms
[desktop] effect=shadow:windows=4: FPS: 754 FrameTime: 1.328 ms
Error: Requested MapBuffer VBO update method but GL_OES_mapbuffer is not supported!
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 480 FrameTime: 2.083 ms
Error: Requested MapBuffer VBO update method but GL_OES_mapbuffer is not supported!
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: Unsupported
[ideas] speed=duration: FPS: 486 FrameTime: 2.059 ms
[jellyfish] <default>: FPS: 904 FrameTime: 1.107 ms
[terrain] <default>: FPS: 177 FrameTime: 5.652 ms
[shadow] <default>: FPS: 871 FrameTime: 1.148 ms
[refract] <default>: FPS: 294 FrameTime: 3.402 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 1021 FrameTime: 0.980 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 1030 FrameTime: 0.971 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 1079 FrameTime: 0.927 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1040 FrameTime: 0.962 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 1035 FrameTime: 0.967 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1038 FrameTime: 0.964 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 1046 FrameTime: 0.957 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 1009 FrameTime: 0.992 ms
=======================================================
                                  glmark2 Score: 870 
=======================================================

~$ chromium-browser --in-process-gpu -use-gl=egl
[20998:20998:1128/114749.612555:ERROR:file_path_watcher_inotify.cc(890)] Failed to read /proc/sys/fs/inotify/max_user_watches
[20999:20999:1128/114749.615071:ERROR:file_path_watcher_inotify.cc(890)] Failed to read /proc/sys/fs/inotify/max_user_watches
[20992:21007:1128/114749.628242:ERROR:file_path_watcher_inotify.cc(890)] Failed to read /proc/sys/fs/inotify/max_user_watches
[20992:21011:1128/114749.629862:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /data/data/com.termux/files/usr/var/run/dbus/system_bus_socket: No such file or directory
[20992:21017:1128/114749.732316:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /data/data/com.termux/files/usr/var/run/dbus/system_bus_socket: No such file or directory
[20992:21017:1128/114749.732746:ERROR:bus.cc(407)] Failed to connect to the bus: Failed to connect to socket /data/data/com.termux/files/usr/var/run/dbus/system_bus_socket: No such file or directory
[20992:21010:1128/114749.736533:ERROR:address_tracker_linux.cc(230)] Could not bind NETLINK socket: Permission denied (13)
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglAcquireExternalContextANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglClientWaitSyncKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglCopyMetalSharedEventANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglCreateImageKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglCreateStreamKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglCreateStreamProducerD3DTextureANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglCreateSyncKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglDestroyImageKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglDestroyStreamKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglDestroySyncKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglDupNativeFenceFDANDROID" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglExportDMABUFImageMESA" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglExportDMABUFImageQueryMESA" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglExportVkImageANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglGetCompositorTimingANDROID" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglGetCompositorTimingSupportedANDROID" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglGetFrameTimestampsANDROID" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglGetFrameTimestampSupportedANDROID" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglGetMscRateANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglGetNativeClientBufferANDROID" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglGetNextFrameIdANDROID" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglGetSyncAttribKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglGetSyncValuesCHROMIUM" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglHandleGPUSwitchANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglImageFlushExternalEXT" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglPostSubBufferNV" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglQueryDeviceAttribEXT" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglQueryDeviceStringEXT" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglQueryDisplayAttribANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglQueryDmaBufFormatsEXT" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglQueryDmaBufModifiersEXT" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglQueryStreamKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglQueryStreamu64KHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglQueryStringiANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglQuerySurfacePointerANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglReacquireHighPowerGPUANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglReleaseExternalContextANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglReleaseHighPowerGPUANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglSetBlobCacheFuncsANDROID" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglStreamAttribKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglStreamConsumerAcquireKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglStreamConsumerGLTextureExternalAttribsNV" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglStreamConsumerGLTextureExternalKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglStreamConsumerReleaseKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglStreamPostD3DTextureANGLE" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglSwapBuffersWithDamageKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglWaitSyncKHR" is not effective
Error: termuxEGL_GetDispatchAddress is not implemented yet, call with arg "eglWaitUntilWorkScheduledANGLE" is not effective
[1128/114749.895456:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[1128/114749.895843:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[1128/114749.897129:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[1128/114749.897375:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[1128/114749.899295:ERROR:elf_dynamic_array_reader.h(64)] tag not found
[1128/114749.899432:ERROR:elf_dynamic_array_reader.h(64)] tag not found
Segmentation fault

robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Nov 29, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](termux#22353) or [new virglrenderer](termux#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in Termux:X11 settings

- 6 patches are unique to TUR/termux, but the patch 0001-enable-egl-without-sdl2.patch is
  a cherry pick of minetest/minetest@4838eb2
robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Nov 29, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](termux#22353) or [new virglrenderer](termux#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in Termux:X11 settings

- 6 patches are unique to TUR/termux, but the patch 0001-enable-egl-without-sdl2.patch is
  a cherry pick of minetest/minetest@4838eb2
robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Dec 3, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](termux#22353) or [new virglrenderer](termux#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in Termux:X11 settings

- 6 patches are unique to TUR/termux, but the patch 0001-enable-egl-without-sdl2.patch is
  a cherry pick of minetest/minetest@4838eb2
robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Dec 3, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](termux#22353) or [new virglrenderer](termux#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in Termux:X11 settings

- 6 patches are unique to TUR/termux, but the patch 0001-enable-egl-without-sdl2.patch is
  a cherry pick of minetest/minetest@4838eb2
robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Dec 3, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](termux#22353) or [new virglrenderer](termux#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in Termux:X11 settings

- 6 patches are unique to TUR/termux, but the patch 0001-enable-egl-without-sdl2.patch is
  a cherry pick of minetest/minetest@4838eb2
truboxl pushed a commit that referenced this pull request Dec 4, 2024
Copied and pasted from https://github.com/termux-user-repository/tur/tree/master/tur/luanti

Previous documentation here:
- termux-user-repository/tur#1295
- termux-user-repository/tur#1296
- termux-user-repository/tur#1331
- termux-user-repository/tur#1327

Summary of key points:

- for better performance than normal virglrenderer-android, test using [termux-wsi-layer](#22353) or [new virglrenderer](#22385)

- to use touchscreen input, set "Touchscreen input mode: Direct touch" in Termux:X11 settings

- to use keyboard input, set "Prefer scancodes" in Termux:X11 settings

- to use mouse input, set "Capture external pointer devices" in Termux:X11 settings

- 6 patches are unique to TUR/termux, but the patch 0001-enable-egl-without-sdl2.patch is
  a cherry pick of minetest/minetest@4838eb2
@daviDarthemis
Copy link

daviDarthemis commented Dec 6, 2024

Some work done on wsi for prop (vulkan)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants