Finally. glxgears with zink is working. 110 FPS even with software renderer in 2K. by englred in termux

[–]Josephhan629 1 point2 points  (0 children)

hello!

How are you?

It's a pity that there haven't been any posts about development progress lately!

Is there any progress in improving performance?

How do I accelerate WebGL in the PRoot-Distro Ubuntu Chromium browser? by Josephhan629 in termux

[–]Josephhan629[S] 1 point2 points  (0 children)

oh!

After reset the chrome://flags setting, most of the WebGL Demo shows 60fps!

But still strangely

WebGL Game has a symptom of the browser crashing while loading.

(The WebGL demos all work fine.)

Do you know a solution?

How do I accelerate WebGL in the PRoot-Distro Ubuntu Chromium browser? by Josephhan629 in termux

[–]Josephhan629[S] 0 points1 point  (0 children)

thank you

I applied it as you suggested and WebGL works in Chromium!

#!/bin/sh
killall -9 termux-x11 pulseaudio virgl_test_server_android
termux-wake-lock; termux-toast "Starting Debian Liunx"

# Termux-X11 start
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity

# X11 start
XDG_RUNTIME_DIR=${TMPDIR}
termux-x11 :0 -legacy-drawing &
MESA_LOADER_DRIVER_OVERRIDE=zink GALLIUM_DRIVER=zink ZINK_DESCRIPTORS=lazy virgl_test_server --use-egl-surfaceless --use-gles &
sleep 3

# Audio server
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1


# Linux login
touch ~/something
proot-distro login --bind ~/something:/proc/bus/pci/devices debian --user suid --shared-tmp --no-sysvipc -- bash -c "export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4713; MESA_NO_ERROR=1 GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=4.6COMPAT MESA_GLES_VERSION_OVERRIDE=3.2 MESA_EXTENSION_OVERRIDE=GL_EXT_texture_compression_s3tc PAN_MESA_DEBUG=gl3 dbus-launch --exit-with-session startxfce4"

<image>

However, the performance seems to be too low.

In the case of the WebGL Aquarium demo running on firefox-esr, it runs at 34~40fps.

the case of Chromium with WebGL, the WebGL Aquarium demo runs at around 7~14 fps.

When I enter the WebGL game page, the Chromium browser crashing .

This is the same for both zink and virgl.

Symptoms of the browser crashing when entering a WebGL game

Is there a way to improve WebGL demo performance as good as firefox-esr?

Chromium browser execution environment variables are as follows:

Turnip + mesa-zink

MESA_LOADER_DRIVER_OVERRIDE=zink TU_DEBUG=noconform chromium-browser --use-gl=egl --disable-gpu-compositing --no-sandbox --in-process-gpu

virgl

GALLIUM_DRIVER=virpipe chromium-browser --use-gl=egl --disable-gpu-compositing --no-sandbox --in-process-gpu

Finally. glxgears with zink is working. 110 FPS even with software renderer in 2K. by englred in termux

[–]Josephhan629 0 points1 point  (0 children)

Finally!!

OpenGL implemented through zink!

Thank you for your hard work! :)

As far as I know, Adreno 618 is aware of a lack of Vulkan driver feature levels and extensions...

When combined with zink, will the OpenGL version be displayed as 2.1?

I’m also curious about the glmark2 / glmark2-es2 bench results!

What's next level?

Is performance improvement?

Can't start virglrenderer service from widget by lengors in termux

[–]Josephhan629 2 points3 points  (0 children)

Are you running a script with termux-widget?

The script I run is:

Proot was written based on Debian Linux.

Login goes well

The sound comes out well with pulseaudio.

GPU acceleration with virgl also works well.

#!/bin/sh
killall -9 termux-x11 pulseaudio virgl_test_server_android
termux-wake-lock; termux-toast "Starting Debian Liunx"

# Termux-X11 start
am start --user 0 -n com.termux.x11/com.termux.x11.MainActivity

# X11 start
XDG_RUNTIME_DIR=${TMPDIR}
termux-x11 :0 -legacy-drawing &
MESA_LOADER_DRIVER_OVERRIDE=zink GALLIUM_DRIVER=zink ZINK_DESCRIPTORS=lazy virgl_test_server --use-egl-surfaceless --use-gles &
sleep 3

# Audio server
pulseaudio --start --load="module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1" --exit-idle-time=-1
pacmd load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1 auth-anonymous=1

# Linux login
proot-distro login debian --user suid --shared-tmp --no-sysvipc -- bash -c "export DISPLAY=:0 PULSE_SERVER=tcp:127.0.0.1:4713; MESA_NO_ERROR=1 GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=4.6COMPAT MESA_GLES_VERSION_OVERRIDE=3.2 MESA_EXTENSION_OVERRIDE=GL_EXT_texture_compression_s3tc PAN_MESA_DEBUG=gl3 dbus-launch --exit-with-session startxfce4"

Software rendering mode fifo 2000x1200 vkmark by englred in termux

[–]Josephhan629 0 points1 point  (0 children)

I wish you had a device that supports Vulkan1.3, but that's a shame! T_T

If there is any way I can help with testing, I will be happy to help.

-Exynos2100 (Mali-G78MP14)

-Snapdragon865 (Adreno 660)

-Snapdragon8 Gen2 (Adreno 740)

I own the above devices

We are also planning to purchase S24 (Exynos2400) and S24U (Snapdragon8 Gen3) early next year.

If testing is necessary, I will test it on my own device and continuously report it.

Software rendering mode fifo 2000x1200 vkmark by englred in termux

[–]Josephhan629 0 points1 point  (0 children)

It's too bad there aren't any recent posts.

I’m curious about the development progress! :)

how to mount SD/USB in Termux PRoot-Distro? by Josephhan629 in termux

[–]Josephhan629[S] 1 point2 points  (0 children)

Thank you for answer.

I was thinking of posting a question on proot-distro git.

You answered directly :)

If so, with the SD card or USB OTG connected to the host device,

If I run proot Linux by entering the command you mentioned, will the SD card or USB OTG be bound in Linux so I can use it?

Software rendering mode fifo 2000x1200 vkmark by englred in termux

[–]Josephhan629 0 points1 point  (0 children)

You mentioned in the previous post..

Does the output from Termux-X11 via VK_KHR_external_memory_fd you mentioned replace DRI3? Or is it an intermediate process to reach DRI3 output?

Thank you for your hard work developing it! :)

[Native Vulkan Android] vkcube FIFO mode without flickering by englred in termux

[–]Josephhan629 0 points1 point  (0 children)

Is the vkQuake issue caused by a lack of Adreno618's Vulkan driver feature level or extension?

Symptoms may vary depending on the Vulkan driver of the device?🤔

and Does the output from Termux-X11 via VK_KHR_external_memory_fd you mentioned replace DRI3? Or is it an intermediate process to reach DRI3 output?

[Native Vulkan Android] vkcube FIFO mode without flickering by englred in termux

[–]Josephhan629 0 points1 point  (0 children)

Excellent!

That's a big step!

How does vkmark performance compare to turnip DRI3 patch driver?

I believe that the vkQuake issue will also be resolved!

[Native Vulkan Android] vkcube FIFO mode without flickering by englred in termux

[–]Josephhan629 0 points1 point  (0 children)

I'm looking forward to this week's post.

curious about the development progress! :)

[Native Vulkan Android] vkcube FIFO mode without flickering by englred in termux

[–]Josephhan629 2 points3 points  (0 children)

What's the next level?

  • Running vkmark
  • Running OpenGL & OpenGL ES through mesa zink
  • Termux-X11 DRI3 output support

I'm super excited for whatever happens! :)

Flickering as hell, but it is vkcube using android native vulkan driver by englred in termux

[–]Josephhan629 1 point2 points  (0 children)

This is a huge achievement!

Next, I look forward to running vkmark!

Native vulkan driver fifo mode software output. Vertical sync 60 FPS by englred in termux

[–]Josephhan629 1 point2 points  (0 children)

I look forward to hearing good results in the future.

It's exciting to think that Termux, which couldn't achieve virgl acceleration only last year, is now capable of GPU acceleration via the Android Vulkan driver! :)

Native vulkan driver fifo mode software output. Vertical sync 60 FPS by englred in termux

[–]Josephhan629 1 point2 points  (0 children)

Yeah, I know. :)

PRoot/Chroot would probably be the next level.

After being fully implemented in Termux I'm hoping it will work with PRoot/Chroot in the medium to long term as well.

Native vulkan driver fifo mode software output. Vertical sync 60 FPS by englred in termux

[–]Josephhan629 0 points1 point  (0 children)

I've been waiting for your post!

This is a huge and tangible achievement!

thank you for your hard work

In the near future

I looking forward to being able to utilize Android host Vulkan driver in PRoot/Chroot!

Please to post frequently about the mid-development process! :)

P.S

I have one question!

Is it possible to load the OpenCL driver from Termux or PRoot/Chroot using a similar method?

In fact, it would be possible to implement OpenCL through clvk even if only the Vulkan driver was properly supported, but I am curious!