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

new package: angle-android #17418

Merged
merged 2 commits into from
Jul 15, 2023
Merged

new package: angle-android #17418

merged 2 commits into from
Jul 15, 2023

Conversation

licy183
Copy link
Member

@licy183 licy183 commented Jul 12, 2023

Running virgl straightly over Android's GL may cause error due to the lack of extensions and differences between Android's GLs. ANGLE can translate OpenGL operations to other OpenGL or vulkan, so it may solve some running issues for virglrenderer-android.

Tested on Adreno 660 and Mali G610.

Related issue: #16763, #17406

@licy183 licy183 force-pushed the virgl-angle-android branch 4 times, most recently from 7c6057d to 3fe121b Compare July 13, 2023 09:19
@licy183 licy183 marked this pull request as ready for review July 13, 2023 09:20
@licy183 licy183 requested a review from twaik July 13, 2023 09:20
@hansm629
Copy link

I need your help.
I have installed all the related packages you built in Termux.

Unpacking angle-android (2.1.21474-75e64719-0) ...
Setting up angle-android (2.1.21474-75e64719-0) ...
Setting up angle-android-gl (2.1.21474-75e64719-0) ...
Setting up angle-android-vulkan-null (2.1.21474-75e64719-0) ...
Setting up angle-android-vulkan (2.1.21474-75e64719-0) ...

After installing the four deb packages
I proceeded with the following command.

And one by one

$ EPOXY_USE_ANGLE=1 virgl_test_server_android &
[1] 24624
$ XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac &
[2] 24776
$ proot-distro login ubuntu --user hsm --shared-tmp --no-sysvipc

hsm@localhost:$ ./startx.sh
hsm@localhost:$ /usr/bin/startxfce4: X server already running on display :0
Couldn't open libEGL_angle.so: dlopen failed: library "libEGL_angle.so" not found
lost connection to rendering server on 8 read -1 104

It is not working because of the above error.

The script on "startx.sh" is

"export DISPLAY=:0 GALLIUM_DRIVER=virpipe
dbus-launch --exit-with-session startxfce4 &"

It is entered as .

For traditional virglender-android
Termux-X11 called Ubuntu GUI when you entered the step

How can we solve the problem? T_T

@licy183
Copy link
Member Author

licy183 commented Jul 13, 2023

Emmm... I wrongly symlinked some files. I'll fix it later.

@licy183
Copy link
Member Author

licy183 commented Jul 14, 2023

Hello, @twaik and @qiangz63 Could you please test whether ANGLE with virglrenderer-android works on Mali-G77 and Mali-G78? Thanks!

@hansm629
Copy link

hansm629 commented Jul 14, 2023

@licy183 I installed a new package and checked it, and it worked well.

스크린샷_2023-07-14_02-23-20
스크린샷_2023-07-14_02-32-25

But there's a problem.

스크린샷_2023-07-14_03-49-21
스크린샷_2023-07-14_03-50-16

When driving without the variable "MESA_GL_VERSION_OVERRIDE=4.0", glmark2 crashes on the way.

[glmark2]
** Failed to set swap interval. Results may be bounded above by refresh rate.

And Blender 3D, kdenlive, GThumb also have symptoms that don't run.

hsm@localhost:~$ blender
Color management: using fallback mode for management
Color management: Error could not find role data role.
Color management: scene view "Filmic" not found, setting default "Standard".
lost connection to rendering server on 8 read -1 104

hsm@localhost:~$ kdenlive
=== REG FOCUS: false
No headers available
failed to get fd
Unable to get a valid fd

hsm@localhost:~$ gthumb
Mesa 23.2.0-devel implementation error: Invalid GLSL version in shading_language_version()
Please report at https://gitlab.freedesktop.org/mesa/mesa/-/issues

Both angle-android-gl and angle-android-vulkan have the same symptoms.

The command is "GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=4.0".

When using the same command on the virglender-android, kdenlive was not executed due to a crash

Blender3d is not available, but it was executed
(UI text is not drawn and the program stops when selecting a 3D object)

GThumb ran fine.

Is it the inherent limit of ANGLE?

Or is it a bug?

installed in Ubuntu
Mesa is 23.2.0 devel.

Running the XFCE4 with ANGLE definitely makes the GUI usability feel smoother.

But by current standards, the stability is
I think it's lower than virglender-android.

What I was looking forward to from ANGLE was a higher OpenGL version
It was a stable compatibility, is there any room for improvement?

@qiangz63
Copy link

qiangz63 commented Jul 14, 2023

I installed angle-android, but still wrong as #16763. REDERER still virgl (Mali-G78), not virgl (ANGLE ...

@licy183
Copy link
Member Author

licy183 commented Jul 14, 2023

Emmm... virgl_test_server_android should start with envvar EPOXY_USE_ANGLE=1

@licy183
Copy link
Member Author

licy183 commented Jul 14, 2023

What I was looking forward to from ANGLE was a higher OpenGL version

This package is actually not running ANGLE above virgl, but running virgl over ANGLE (to solve some error of virglrenderer-android). So it will not have a higher OpenGL version...

@twaik
Copy link
Member

twaik commented Jul 14, 2023

I can not find deb package. Where can I get it?

@hansm629
Copy link

hansm629 commented Jul 14, 2023

What I was looking forward to from ANGLE was a higher OpenGL version

This package is actually not running ANGLE above virgl, but running virgl over ANGLE (to solve some error of virglrenderer-android). So it will not have a higher OpenGL version...

@licy183 What issue is glmark2 getting an error on the way when there is no option for MESA_GL_VERSION_OVERRIDE=4.0?

Below are the angle-android-vulkan results.

Same symptoms.
When the MESA_GL_VERSION_OVERRIDE= 4.0 (or 3.3) option is entered, glmark2 completes successfully.

Instead, if you insert MESA_GL_VERSION_OVERRIDE=4.0, there are some symptoms that do not run like GThumb.

Using the MESA_GL_VERSION_OVERRIDE= 4.0 option
Virglender-android doesn't seem to have these symptoms
Is there a solution?

The xfce4 GUI is very smooth. :)

hsm@localhost:~$ glmark2
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     Mesa
    GL_RENDERER:   virgl (ANGLE (Qualcomm, Vulkan 1.3.128 (Adreno (TM) 740 (0x...)
    GL_VERSION:    2.1 Mesa 23.2.0-devel (git-957009978e)
=======================================================
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=false: FPS: 158 FrameTime: 6.329 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=true: FPS: 154 FrameTime: 6.494 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=nearest: FPS: 166 FrameTime: 6.024 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=linear: FPS: 171 FrameTime: 5.848 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.

스크린샷_2023-07-14_17-18-53

it is
Segmentation error

@licy183
Copy link
Member Author

licy183 commented Jul 14, 2023

I can not find deb package. Where can I get it?

You could download it from the lastest workflow run. https://github.com/termux/termux-packages/actions/runs/5544262923

@licy183
Copy link
Member Author

licy183 commented Jul 14, 2023

Using the MESA_GL_VERSION_OVERRIDE= 4.0 option Virglender-android doesn't seem to have these symptoms. Is there a solution?

I don't know... Virglrenderer-android hasn't tested in any proot environment...

@qiangz63
Copy link

qiangz63 commented Jul 14, 2023

Gread job, run as expected! The most improve is terrain FPS from 2 to 30!
Althogh the default situation just improve 10%.

@hansm629
Copy link

MESA_GL_VERSION_OVERRIDE= 4.0 옵션 사용 Virgleender-android에는 이러한 증상이 없는 것 같습니다. 해결책이 있습니까?

모르겠습니다... Virglrenderer-android는 어떤 proot 환경에서도 테스트하지 않았습니다...

@licy183 Could it be a mesa issue installed in Ubuntu?

The mesa provided by ubuntu 22.04 was low to 22 version, so I compiled the mesa myself and used it. (23.2.0 devel)

@licy183
Copy link
Member Author

licy183 commented Jul 14, 2023

Using virgl on Android's OpenGL is actually not stable, so I think it is normal that there are certain problems. The most stable way should be the CPU-based swrast driver...

@hansm629
Copy link

Using virgl on Android's OpenGL is actually not stable, so I think it is normal that there are certain problems. The most stable way should be the CPU-based swrast driver...

I'll test this and that additionally.

First of all, xfce4 gui works smoother than virglender-android.

@twaik
Copy link
Member

twaik commented Jul 14, 2023

You could download it from the lastest workflow run. https://github.com/termux/termux-packages/actions/runs/5544262923

It is pretty weird. I did not see it on the phone, but see it on PC.

@twaik
Copy link
Member

twaik commented Jul 14, 2023

Ok. It is pretty fine. I have a device with Mali-G77 GPU and glmark2 does not run with simple virglrenderer-android.

~ $ GALLIUM_DRIVER=virpipe glmark2
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa
    GL_RENDERER:    virgl (Mali-G77)
    GL_VERSION:     2.1 Mesa 23.1.3
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0 samples=0
    Surface Size:   800x600 windowed
=======================================================
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
../src/src/gallium/auxiliary/cso_cache/cso_context.c:397: void cso_unbind_context(struct cso_context *): assertion "maxsam <= PIPE_MAX_SAMPLERS" failed
Aborted

But with angle-android package it gives me such an error.

~ $ EPOXY_USE_ANGLE=1 virgl_test_server_android 
Couldn't open libEGL_angle.so: dlopen failed: file offset for the library "libEGL_angle.so" >= file size: 0 >= 0

After installing angle-android-gl package everything seems to be fine.

=======================================================
                                  glmark2 Score: 100 
=======================================================

After installing angle-android-vulkan

=======================================================
                                  glmark2 Score: 70 
=======================================================

After installing angle-android-vulkan-null

=======================================================
                                  glmark2 Score: 68 
=======================================================

@hansm629
Copy link

hansm629 commented Jul 14, 2023

@licy183
I tested it on my Galaxy S21 Ultra.
This is Exynos 2100 (Mali-G78) spec.

When attempting to accelerate a GPU with an existing virglrenderer-android
The xfce4 session GUI is broken and displayed
There was an error running glmark2

Works great when trying with angle-android-gl!

hsm@localhost:~$ glmark2
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     Mesa/X.org
    GL_RENDERER:   virgl (ANGLE (ARM, Mali-G78, OpenGL ES 3.2 v1.r32p1-01bet2-...)
    GL_VERSION:    4.3 (Compatibility Profile) Mesa 22.2.5-0ubuntu0.1~22.04.3
=======================================================
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=false: FPS: 178 FrameTime: 5.618 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=true: FPS: 190 FrameTime: 5.263 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=nearest: FPS: 199 FrameTime: 5.025 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=linear: FPS: 198 FrameTime: 5.051 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=mipmap: FPS: 196 FrameTime: 5.102 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=gouraud: FPS: 172 FrameTime: 5.814 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=blinn-phong-inf: FPS: 169 FrameTime: 5.917 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=phong: FPS: 161 FrameTime: 6.211 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=cel: FPS: 154 FrameTime: 6.494 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=high-poly: FPS: 109 FrameTime: 9.174 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=normals: FPS: 172 FrameTime: 5.814 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=height: FPS: 150 FrameTime: 6.667 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 121 FrameTime: 8.264 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 99 FrameTime: 10.101 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[pulsar] light=false:quads=5:texture=false: FPS: 121 FrameTime: 8.264 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 87 FrameTime: 11.494 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[desktop] effect=shadow:windows=4: FPS: 106 FrameTime: 9.434 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 83 FrameTime: 12.048 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 76 FrameTime: 13.158 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 84 FrameTime: 11.905 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[ideas] speed=duration: FPS: 67 FrameTime: 14.925 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[jellyfish] <default>: FPS: 100 FrameTime: 10.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[terrain] <default>: FPS: 32 FrameTime: 31.250 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shadow] <default>: FPS: 97 FrameTime: 10.309 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[refract] <default>: FPS: 59 FrameTime: 16.949 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 106 FrameTime: 9.434 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 107 FrameTime: 9.346 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 106 FrameTime: 9.434 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=low:fragment-steps=5: FPS: 106 FrameTime: 9.434 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=medium:fragment-steps=5: FPS: 107 FrameTime: 9.346 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 106 FrameTime: 9.434 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 107 FrameTime: 9.346 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 107 FrameTime: 9.346 ms
=======================================================
                                  glmark2 Score: 122 
=======================================================
hsm@localhost:~$ 

Screenshot_2023-07-14_12-45-49
Screenshot_2023-07-14_13-12-38

@licy183
Copy link
Member Author

licy183 commented Jul 14, 2023

Thanks to all of you for testing. I'll merge this PR tomorrow morning (UTC+8) if there is no more review.

@hansm629
Copy link

hansm629 commented Jul 14, 2023

@licy183
This is the last test of the Galaxy S21 Ultra Exynos2100 (Mali-G78).
After compiling and installing the Mesa 23.2.0 version,
I ran glmark2.

The result is very good.
glmark2 score 168 is achieved.

termux-x11 on Samsung DeX mode
The execution commands are as follows.

You did a great job! :) b

$ EPOXY_USE_ANGLE=1 virgl_test_server_android &
$ XDG_RUNTIME_DIR=${TMPDIR} termux-x11 :0 -ac &
$ proot-distro login ubuntu --user user --shared-tmp --no-sysvipc
$ export DISPLAY=:0 GALLIUM_DRIVER=virpipe MESA_GL_VERSION_OVERRIDE=4.3COMPAT MESA_GLES_VERSION_OVERRIDE=3.2
$ dbus-launch --exit-with-session startxfce4 &
hsm@localhost:~$ glmark2
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     Mesa
    GL_RENDERER:   virgl (ANGLE (ARM, Mali-G78, OpenGL ES 3.2 v1.r32p1-01bet2-...)
    GL_VERSION:    4.3 (Compatibility Profile) Mesa 23.2.0-devel (git-957009978e)
=======================================================
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=false: FPS: 185 FrameTime: 5.405 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[build] use-vbo=true: FPS: 191 FrameTime: 5.236 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=nearest: FPS: 204 FrameTime: 4.902 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=linear: FPS: 203 FrameTime: 4.926 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[texture] texture-filter=mipmap: FPS: 204 FrameTime: 4.902 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=gouraud: FPS: 182 FrameTime: 5.495 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=blinn-phong-inf: FPS: 181 FrameTime: 5.525 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=phong: FPS: 177 FrameTime: 5.650 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shading] shading=cel: FPS: 175 FrameTime: 5.714 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=high-poly: FPS: 120 FrameTime: 8.333 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=normals: FPS: 206 FrameTime: 4.854 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[bump] bump-render=height: FPS: 206 FrameTime: 4.854 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 177 FrameTime: 5.650 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 119 FrameTime: 8.403 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[pulsar] light=false:quads=5:texture=false: FPS: 205 FrameTime: 4.878 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 121 FrameTime: 8.264 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[desktop] effect=shadow:windows=4: FPS: 173 FrameTime: 5.780 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 136 FrameTime: 7.353 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 125 FrameTime: 8.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 142 FrameTime: 7.042 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[ideas] speed=duration: FPS: 111 FrameTime: 9.009 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[jellyfish] <default>: FPS: 164 FrameTime: 6.098 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[terrain] <default>: FPS: 36 FrameTime: 27.778 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[shadow] <default>: FPS: 172 FrameTime: 5.814 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[refract] <default>: FPS: 60 FrameTime: 16.667 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 196 FrameTime: 5.102 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 198 FrameTime: 5.051 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 198 FrameTime: 5.051 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=low:fragment-steps=5: FPS: 200 FrameTime: 5.000 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[function] fragment-complexity=medium:fragment-steps=5: FPS: 193 FrameTime: 5.181 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 198 FrameTime: 5.051 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 201 FrameTime: 4.975 ms
** GLX does not support GLX_EXT_swap_control or GLX_MESA_swap_control!
** Failed to set swap interval. Results may be bounded above by refresh rate.
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 199 FrameTime: 5.025 ms
=======================================================
                                  glmark2 Score: 168 
=======================================================

스크린샷_2023-07-15_03-21-40
스크린샷_2023-07-15_03-34-45

@twaik
Copy link
Member

twaik commented Jul 14, 2023

Maybe we can make virglrenderer choose between direct-gl, angle-gl, angle-vulkan and angle-vulkan-null with commandline parameters? I think it will be better than installing needed angle version and using environment variables.

@truboxl
Copy link
Contributor

truboxl commented Jul 14, 2023

Only virglrenderer-android is using this. Don't think it's fine to have angle-android* as name and then keep some virglrenderer-android files in it.

@licy183
Copy link
Member Author

licy183 commented Jul 14, 2023

Maybe we can make virglrenderer choose between direct-gl, angle-gl, angle-vulkan and angle-vulkan-null with commandline parameters? I think it will be better than installing needed angle version and using environment variables.

Only virglrenderer-android is using this. Don't think it's fine to have angle-android* as name and then keep some virglrenderer-android files in it.

Yeah, I think it is better to use LD_PRELOAD and create some bash wrapper for virglrenderer-android, so that angle-android only contains ANGLE libs. It is hard to pass command line from vtest_server to libepoxy (which loads the GL libraries). I'll try to do it this afternoon.

@twaik
Copy link
Member

twaik commented Jul 15, 2023

I can make some code which can dynamically link to the needed libEGL/GLES so epoxy dependency can be dropped. Should I write it?

@licy183 licy183 linked an issue Jul 15, 2023 that may be closed by this pull request
@licy183
Copy link
Member Author

licy183 commented Jul 15, 2023

I can make some code which can dynamically link to the needed libEGL/GLES so epoxy dependency can be dropped. Should I write it?

Of course. But I'd like to merge this PR first. We can open a new issue or discussion to talk about what virglrenderer-android can be improved.

@licy183
Copy link
Member Author

licy183 commented Jul 15, 2023

virgl_test_server_android now is a shell script. Someone can pass --angle-gl, --angle-vulkan or --angle-vulkan-null to select different ANGLE GL libs, and pass nothing to use the default Android's GL.

I'll merge this PR tomorrow morning (UTC+8) if there is no more review.

@truboxl
Copy link
Contributor

truboxl commented Jul 15, 2023

Nitpick

You can call one sed with many -e "s|||g" rather than multiple sed and pipes

@licy183 licy183 merged commit 56054e8 into master Jul 15, 2023
@licy183 licy183 deleted the virgl-angle-android branch July 15, 2023 22:23
@SolDev69
Copy link

SolDev69 commented Jul 17, 2023

~ $ virgl_test_server_android --angle-vulkan
ERR: vk_format_utils.cpp:104 (FindSupportedFormat):     ! Assert failed in FindSupportedFormat (../../../cache/tmp-checkout/angle/src/libANGLE/renderer/vulkan/vk_format_utils.cpp:104): hasSupport(renderer, info[last].format)
FATAL: vk_format_utils.cpp:104 (FindSupportedFormat):   ! Assert failed in FindSupportedFormat (../../../cache/tmp-checkout/angle/src/libANGLE/renderer/vulkan/vk_format_utils.cpp:104): hasSupport(renderer, info[last].format)
^C
~ $ virgl_test_server_android --angle-vulkan-null
ERR: vk_format_utils.cpp:104 (FindSupportedFormat):     ! Assert failed in FindSupportedFormat (../../../cache/tmp-checkout/angle/src/libANGLE/renderer/vulkan/vk_format_utils.cpp:104): hasSupport(renderer, info[last].format)
FATAL: vk_format_utils.cpp:104 (FindSupportedFormat):   ! Assert failed in FindSupportedFormat (../../../cache/tmp-checkout/angle/src/libANGLE/renderer/vulkan/vk_format_utils.cpp:104): hasSupport(renderer, info[last].format)
^C

Hmm? vulkan and vulkan-null don't work for me. I have an Adreno 506 so probably why.

@licy183
Copy link
Member Author

licy183 commented Jul 17, 2023

Seems that your vulkan driver lacks some support...

@A7GoD
Copy link

A7GoD commented Jul 27, 2023

@licy183

   debs EPOXY_USE_ANGLE=1 virgl_test_server_android
EGL major/minor: 1.5
EGL version: 1.5 (ANGLE 2.1.21474 git hash: 75e647193aeb)
EGL vendor: Google Inc. (Qualcomm)
EGL extensions: EGL_EXT_create_context_robustness EGL_KHR_create_context EGL_KHR_image EGL_KHR_image_base EGL_EXT_image_gl_colorspace EGL_KHR_gl_colorspace EGL_EXT_gl_colorspace_scrgb EGL_EXT_gl_colorspace_scrgb_linear EGL_EXT_gl_colorspace_display_p3 EGL_EXT_gl_colorspace_display_p3_linear EGL_EXT_gl_colorspace_display_p3_passthrough EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_renderbuffer_image EGL_KHR_get_all_proc_addresses EGL_KHR_fence_sync EGL_KHR_wait_sync EGL_ANGLE_create_context_webgl_compatibility EGL_CHROMIUM_create_context_bind_generates_resource EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_surfaceless_context EGL_ANGLE_display_texture_share_group EGL_ANGLE_display_semaphore_share_group EGL_ANGLE_create_context_client_arrays EGL_ANGLE_program_cache_control EGL_ANGLE_robust_resource_initialization EGL_ANGLE_create_context_extensions_enabled EGL_ANDROID_presentation_time EGL_ANDROID_blob_cache EGL_ANDROID_image_native_buffer EGL_ANDROID_get_frame_timestamps EGL_ANDROID_recordable EGL_ANDROID_get_native_client_buffer EGL_ANDROID_native_fence_sync EGL_ANGLE_create_context_backwards_compatible EGL_KHR_no_config_context EGL_KHR_create_context_no_error EGL_KHR_reusable_sync EGL_ANGLE_external_context_and_surface EGL_ANGLE_context_virtualization
gl_version 31 - es profile enabled
WARNING: running without ARB/KHR robustness in place may crash
vtest_client_dispatch_commands: client context created.
vrend_winsys_make_context_current: Error switching context: EGL_BAD_ACCESS
GLSL feature level 310
GLSL feature level 310
client failed: VTEST_CLIENT_ERROR_INPUT_READ

For me, Am getting this error, and some stack corruption messages on any app that I run with virpipe, am new to everything, could it be possible for you to link any tuitorial?

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.

[Bug]: virglrenderer_android: glmark2 fails to launch
7 participants