Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Talking about OS and emulation core development
mdrjr
Site Admin
Posts: 12111
Joined: Fri Feb 22, 2013 11:34 pm
languages_spoken: english, portuguese
ODROIDs: -
Location: Brazil
Has thanked: 8 times
Been thanked: 154 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by mdrjr »

20230905:
  • Bumped kernel to 6.1.49
  • Added the mali command line option (Allows switch between panfrost/vendor drivers
  • Added option to use mali r40 or r44
  • Supports the proper DSI driver now (no more tearing)
These users thanked the author mdrjr for the post (total 2):
odroid (Wed Sep 06, 2023 9:16 am) • odjinan (Wed Sep 06, 2023 6:21 pm)

User avatar
rooted
Posts: 10627
Joined: Fri Dec 19, 2014 9:12 am
languages_spoken: english
Location: Gulf of Mexico, US
Has thanked: 822 times
Been thanked: 736 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by rooted »

crashoverride wrote:Just saw this today:
https://www.cnx-software.com/2023/08/28 ... itectures/
DRM – Add support for MIPI-DSI transceiver found on Amlogic G12A/G12B/SM1
I've not been keeping up apparently as I didn't know USB 4 was a thing yet... Image
Initial USB4 v2 support with 80Gbps symmetric link support, new notifications, PCIe extended encapsulation, enhanced uni-directional TMU mode, CL2 link low power state, DisplayPort 2.x tunneling.

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

I am in the process of preparing another "developer preview" using this updated kernel.

1) It should be noted that developers of 3rd party images will need to update u-boot along with the kernel. Otherwise, the display colors will be wrong.

2) Based on the datasheet I read, the LCD panel itself does not support rotation. It will still need to be rotated with GE2D or the GPU (weston).
https://github.com/mdrjr/linux/blob/5ff ... a.dts#L844

3) Weston now produces "perfect" frames (no tearing). However, it is capped at 58 FPS. I recall that I had to manually tune the LCD panel timing parameters in the device tree. I will need to investigate this further.

4) Reboot locks up the system. A forced power off/on is required.

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

crashoverride wrote:
Fri Sep 08, 2023 2:18 am
3) Weston now produces "perfect" frames (no tearing). However, it is capped at 58 FPS. I recall that I had to manually tune the LCD panel timing parameters in the device tree. I will need to investigate this further.
I checked the panel driver timings:
https://github.com/mdrjr/linux/blob/5ff ... #L772-L789

against the old driver timings:
https://github.com/hardkernel/linux/blo ... 8C1-L69C63

Doing the math, the parameters are effectively the same.

I checked Weston against libgs0 in DRM mode (directly driving display), and the FPS is limited there also. Therefore, I know the problem does not reside in Weston. I will try "tweaking" the driver parameters and see if any observable results are produced.

[edit]
I tried manipulating the timings, but I could only get 1 FPS more. There is a limit to the amount of scan lines I can cut off the timing before the driver crashes with

Code: Select all

[    3.338366] Kernel panic - not syncing: GAMMA NOT SET                        
[    3.338370] SMP: stopping secondary CPUs                                     
[    3.338380] Kernel Offset: disabled                                          
[    3.338382] CPU features: 0x00000,01834080,0000420b                          
[    3.338387] Memory Limit: none                                               
[    3.518414] ---[ end Kernel panic - not syncing: GAMMA NOT SET ]---      
Checking the original parameters with an online calculator, the driver timings should produce 60Hz exactly. With my modified timings they produced approximately 61Hz. All indications point to a driver bug that will prevent 60Hz operation.
These users thanked the author crashoverride for the post:
odroid (Fri Sep 08, 2023 9:32 am)

brooksytech
Posts: 101
Joined: Thu Oct 27, 2022 2:37 am
languages_spoken: english
Has thanked: 23 times
Been thanked: 85 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by brooksytech »

crashoverride wrote:
Fri Sep 08, 2023 4:51 am
crashoverride wrote:
Fri Sep 08, 2023 2:18 am
3) Weston now produces "perfect" frames (no tearing). However, it is capped at 58 FPS. I recall that I had to manually tune the LCD panel timing parameters in the device tree. I will need to investigate this further.
I checked the panel driver timings:
https://github.com/mdrjr/linux/blob/5ff ... #L772-L789

against the old driver timings:
https://github.com/hardkernel/linux/blo ... 8C1-L69C63

Doing the math, the parameters are effectively the same.

I checked Weston against libgs0 in DRM mode (directly driving display), and the FPS is limited there also. Therefore, I know the problem does not reside in Weston. I will try "tweaking" the driver parameters and see if any observable results are produced.

[edit]
I tried manipulating the timings, but I could only get 1 FPS more. There is a limit to the amount of scan lines I can cut off the timing before the driver crashes with

Code: Select all

[    3.338366] Kernel panic - not syncing: GAMMA NOT SET                        
[    3.338370] SMP: stopping secondary CPUs                                     
[    3.338380] Kernel Offset: disabled                                          
[    3.338382] CPU features: 0x00000,01834080,0000420b                          
[    3.338387] Memory Limit: none                                               
[    3.518414] ---[ end Kernel panic - not syncing: GAMMA NOT SET ]---      
Checking the original parameters with an online calculator, the driver timings should produce 60Hz exactly. With my modified timings they produced approximately 61Hz. All indications point to a driver bug that will prevent 60Hz operation.
The panel driver / dsi changes were inspired by work we did for the JELOS GO Ultra build. Looks like the changes were pulled before we dialed in the pixel clock timings. They should now be correct and produce closer to 60hz. I submitted a PR to resolve this.

https://github.com/mdrjr/linux/pull/2

I do think the panel still needs some work though.
Last edited by brooksytech on Sat Sep 09, 2023 12:08 am, edited 1 time in total.

mdrjr
Site Admin
Posts: 12111
Joined: Fri Feb 22, 2013 11:34 pm
languages_spoken: english, portuguese
ODROIDs: -
Location: Brazil
Has thanked: 8 times
Been thanked: 154 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by mdrjr »

Hello!

Thanks for that PR! Merged! :)
These users thanked the author mdrjr for the post:
brooksytech (Sat Sep 09, 2023 12:08 am)

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

The panel now shows 60FPS operation. However, I can not calculate the actual rate without knowing what clock divisor values are in use. For now, I will trust the "magic" number.

The following patch enables headphone detection:

Code: Select all

diff --git a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts
index 473ef76a4..028c647f3 100644
--- a/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-g12b-odroid-go-ultra.dts
@@ -75,6 +75,12 @@ volume-down-button {
                        linux,code = <KEY_VOLUMEDOWN>;
                        gpios = <&gpio GPIOX_9 GPIO_ACTIVE_LOW>;
                };
+               headphone-detect-switch {
+                       label = "HEADPHONE";
+                       linux,input-type = <EV_SW>;
+                       linux,code = <SW_HEADPHONE_INSERT>;
+                       gpios = <&gpio_ao GPIOAO_9 GPIO_ACTIVE_HIGH>;
+               };
        };
 
     joypad: gou_joypad {
Tested with evtest:

Code: Select all

$ evtest 
No device specified, trying to scan all of /dev/input/event*
Not running as root, no devices may be available.
Available devices:
/dev/input/event0:	volume-keys
/dev/input/event1:	rk805 pwrkey
/dev/input/event2:	GO-Ultra Gamepad
Select the device event number [0-2]: 0
Input driver version is 1.0.1
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100
Input device name: "volume-keys"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
  Event type 5 (EV_SW)
    Event code 2 (SW_HEADPHONE_INSERT) state 0
Key repeat handling:
  Repeat type 20 (EV_REP)
    Repeat code 0 (REP_DELAY)
      Value    250
    Repeat code 1 (REP_PERIOD)
      Value     33
Properties:
Testing ... (interrupt to exit)
Event: time 1694414304.821323, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 1
Event: time 1694414304.821323, -------------- SYN_REPORT ------------
Event: time 1694414311.381322, type 5 (EV_SW), code 2 (SW_HEADPHONE_INSERT), value 0
Event: time 1694414311.381322, -------------- SYN_REPORT ------------

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

The following changes to the .config file allow USB-OTG to function:

Code: Select all

diff --git a/.config.bak b/.config
index e59d8bb12..b86566e7f 100644
--- a/.config.bak
+++ b/.config
@@ -3854,7 +3854,8 @@ CONFIG_VIDEOBUF2_CORE=y
 CONFIG_VIDEOBUF2_V4L2=y
 CONFIG_VIDEOBUF2_MEMOPS=y
 CONFIG_VIDEOBUF2_DMA_CONTIG=y
-CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEOBUF2_VMALLOC=y
+CONFIG_VIDEOBUF2_DMA_SG=y
 # end of Media drivers
 
 #
@@ -4600,7 +4601,7 @@ CONFIG_SND_PCM=y
 CONFIG_SND_PCM_ELD=y
 CONFIG_SND_PCM_IEC958=y
 CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
+CONFIG_SND_RAWMIDI=y
 CONFIG_SND_JACK=y
 CONFIG_SND_JACK_INPUT_DEV=y
 # CONFIG_SND_OSSEMUL is not set
@@ -5250,6 +5251,7 @@ CONFIG_USB_GADGET=y
 # CONFIG_USB_GADGET_DEBUG_FS is not set
 CONFIG_USB_GADGET_VBUS_DRAW=2
 CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
+# CONFIG_U_SERIAL_CONSOLE is not set
 
 #
 # USB Peripheral Controller
@@ -5269,7 +5271,43 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
 # CONFIG_USB_DUMMY_HCD is not set
 # end of USB Peripheral Controller
 
-# CONFIG_USB_CONFIGFS is not set
+CONFIG_USB_LIBCOMPOSITE=y
+CONFIG_USB_F_ACM=y
+CONFIG_USB_U_SERIAL=y
+CONFIG_USB_U_ETHER=y
+CONFIG_USB_U_AUDIO=y
+CONFIG_USB_F_SERIAL=y
+CONFIG_USB_F_ECM=y
+CONFIG_USB_F_EEM=y
+CONFIG_USB_F_SUBSET=y
+CONFIG_USB_F_RNDIS=y
+CONFIG_USB_F_MASS_STORAGE=y
+CONFIG_USB_F_FS=y
+CONFIG_USB_F_UAC1=y
+CONFIG_USB_F_UAC2=y
+CONFIG_USB_F_UVC=y
+CONFIG_USB_F_MIDI=y
+CONFIG_USB_F_HID=y
+CONFIG_USB_F_PRINTER=y
+CONFIG_USB_CONFIGFS=y
+CONFIG_USB_CONFIGFS_SERIAL=y
+CONFIG_USB_CONFIGFS_ACM=y
+# CONFIG_USB_CONFIGFS_OBEX is not set
+# CONFIG_USB_CONFIGFS_NCM is not set
+CONFIG_USB_CONFIGFS_ECM=y
+CONFIG_USB_CONFIGFS_ECM_SUBSET=y
+CONFIG_USB_CONFIGFS_RNDIS=y
+CONFIG_USB_CONFIGFS_EEM=y
+CONFIG_USB_CONFIGFS_MASS_STORAGE=y
+# CONFIG_USB_CONFIGFS_F_LB_SS is not set
+CONFIG_USB_CONFIGFS_F_FS=y
+CONFIG_USB_CONFIGFS_F_UAC1=y
+# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set
+CONFIG_USB_CONFIGFS_F_UAC2=y
+CONFIG_USB_CONFIGFS_F_MIDI=y
+CONFIG_USB_CONFIGFS_F_HID=y
+CONFIG_USB_CONFIGFS_F_UVC=y
+CONFIG_USB_CONFIGFS_F_PRINTER=y
 
 #
 # USB Gadget precomposed configurations
These users thanked the author crashoverride for the post:
Andyyy (Thu Oct 05, 2023 8:49 pm)

mdrjr
Site Admin
Posts: 12111
Joined: Fri Feb 22, 2013 11:34 pm
languages_spoken: english, portuguese
ODROIDs: -
Location: Brazil
Has thanked: 8 times
Been thanked: 154 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by mdrjr »

Merged those with kernel 6.1.52

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

brooksytech wrote:
Sat Apr 08, 2023 10:49 pm
Have any of you looked at Mesa Zink at all?
I just spent a lot a time on this without any luck. Zink appears to run, but only a black window is displayed:

Code: Select all

$ GALLIUM_DRIVER=zink glxgears -info
WARNING: Some incorrect rendering might occur because the selected Vulkan device (Mali-G52) doesn't support base Zink requirements: feats.features.logicOp feats.features.fillModeNonSolid feats.features.shaderClipDistance 
GL_RENDERER   = zink (Mali-G52)
GL_VERSION    = 3.1 Mesa 23.0.4-0ubuntu1~22.04.1
GL_VENDOR     = Mesa
GL_EXTENSIONS = GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB GL_ARB_multitexture GL_EXT_framebuffer_sRGB GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_ATI_fragment_shader GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_fog_distance GL_NV_half_float GL_APPLE_packed_pixels GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_NV_primitive_restart GL_ARB_fragment_program_shadow GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sprite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate GL_OES_read_format GL_ARB_color_buffer_float GL_ARB_pixel_buffer_object GL_ARB_texture_compression_rgtc GL_ARB_texture_float GL_ARB_texture_rectangle GL_ATI_texture_compression_3dc GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_ARB_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_packed_depth_stencil GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_texture_array GL_EXT_texture_compression_latc GL_EXT_texture_integer GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_OES_EGL_image GL_EXT_texture_buffer_object GL_AMD_texture_texture4 GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_map_buffer_range GL_ARB_texture_buffer_object GL_ARB_texture_rg GL_ARB_texture_swizzle GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle GL_EXT_vertex_array_bgra GL_NV_conditional_render GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_ARB_ES2_compatibility GL_ARB_compatibility GL_ARB_debug_output GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_provoking_vertex GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_shader_texture_lod GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_multisample GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_uniform_buffer_object GL_ATI_meminfo GL_EXT_provoking_vertex GL_EXT_texture_snorm GL_MESA_texture_signed_rgba GL_NV_copy_image GL_NV_texture_barrier GL_ARB_draw_indirect GL_ARB_get_program_binary GL_ARB_gpu_shader5 GL_ARB_robustness GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_precision GL_ARB_shader_subroutine GL_ARB_texture_compression_bptc GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_EXT_direct_state_access GL_AMD_multi_draw_indirect GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_base_instance GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_shader_atomic_counters GL_ARB_shader_image_load_store GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_texture_storage GL_ARB_transform_feedback_instanced GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_transform_feedback GL_AMD_query_buffer_object GL_AMD_shader_trinary_minmax GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_clear_buffer_object GL_ARB_copy_image GL_ARB_explicit_uniform_location GL_ARB_framebuffer_no_attachments GL_ARB_invalidate_subdata GL_ARB_multi_draw_indirect GL_ARB_program_interface_query GL_ARB_robust_buffer_access_behavior GL_ARB_shader_image_size GL_ARB_shader_storage_buffer_object GL_ARB_stencil_texturing GL_ARB_texture_buffer_range GL_ARB_texture_query_levels GL_ARB_texture_storage_multisample GL_ARB_texture_view GL_ARB_vertex_attrib_binding GL_KHR_debug GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_ARB_buffer_storage GL_ARB_clear_texture GL_ARB_enhanced_layouts GL_ARB_internalformat_query2 GL_ARB_multi_bind GL_ARB_query_buffer_object GL_ARB_seamless_cubemap_per_texture GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shading_language_include GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_stencil8 GL_EXT_debug_label GL_EXT_shader_integer_mix GL_NVX_gpu_memory_info GL_ARB_clip_control GL_ARB_conditional_render_inverted GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_get_texture_sub_image GL_ARB_shader_texture_image_samples GL_ARB_texture_barrier GL_ARB_transform_feedback_overflow_query GL_EXT_polygon_offset_clamp GL_EXT_shader_image_load_formatted GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_KHR_context_flush_control GL_KHR_robust_buffer_access_behavior GL_NV_shader_atomic_int64 GL_ARB_parallel_shader_compile GL_ARB_shader_atomic_counter_ops GL_ARB_shader_ballot GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_ARB_gl_spirv GL_ARB_spirv_extensions GL_MESA_shader_integer_functions GL_ARB_polygon_offset_clamp GL_ARB_texture_filter_anisotropic GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_semaphore GL_EXT_semaphore_fd GL_KHR_parallel_shader_compile GL_EXT_EGL_image_storage GL_EXT_EGL_sync GL_EXT_demote_to_helper_invocation GL_NV_ES1_1_compatibility 
VisualID 969, 0x3c9
MESA: warning: WARNING: Incorrect rendering will happen because the Vulkan device doesn't support the 'VK_EXT_depth_clip_enable' feature
18545 frames in 5.0 seconds = 3708.968 FPS
18765 frames in 5.0 seconds = 3752.863 FPS
18714 frames in 5.0 seconds = 3742.793 FPS
18620 frames in 5.0 seconds = 3723.987 FPS
18835 frames in 5.0 seconds = 3766.883 FPS
I tried the r40 and r44 dirvers, and I tried bleeding edge Mesa. Nothing changed. I did have some luck with "virpipe" + "virgl_test_server", However, its very 'hit and miss' as to what works there and whether there is any performance gain.

Code: Select all

$ GALLIUM_DRIVER=virpipe glxgears -info
GL_RENDERER   = virgl
GL_VERSION    = 2.1 Mesa 23.0.4-0ubuntu1~22.04.1
GL_VENDOR     = Mesa
GL_EXTENSIONS = GL_ARB_multisample GL_EXT_abgr GL_EXT_bgra GL_EXT_blend_color GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_copy_texture GL_EXT_subtexture GL_EXT_texture_object GL_EXT_vertex_array GL_EXT_compiled_vertex_array GL_EXT_texture GL_EXT_texture3D GL_IBM_rasterpos_clip GL_ARB_point_parameters GL_EXT_draw_range_elements GL_EXT_packed_pixels GL_EXT_point_parameters GL_EXT_rescale_normal GL_EXT_separate_specular_color GL_EXT_texture_edge_clamp GL_SGIS_generate_mipmap GL_SGIS_texture_border_clamp GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod GL_ARB_framebuffer_sRGB GL_ARB_multitexture GL_EXT_framebuffer_sRGB GL_IBM_multimode_draw_arrays GL_IBM_texture_mirrored_repeat GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_transpose_matrix GL_EXT_blend_func_separate GL_EXT_fog_coord GL_EXT_multi_draw_arrays GL_EXT_secondary_color GL_EXT_texture_env_add GL_EXT_texture_lod_bias GL_INGR_blend_func_separate GL_NV_blend_square GL_NV_light_max_exponent GL_NV_texgen_reflection GL_NV_texture_env_combine4 GL_S3_s3tc GL_SUN_multi_draw_arrays GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_EXT_framebuffer_object GL_EXT_texture_compression_s3tc GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_MESA_window_pos GL_NV_packed_depth_stencil GL_NV_texture_rectangle GL_ARB_depth_texture GL_ARB_occlusion_query GL_ARB_shadow GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_mirrored_repeat GL_ARB_window_pos GL_ATI_fragment_shader GL_EXT_stencil_two_side GL_EXT_texture_cube_map GL_NV_copy_depth_to_color GL_NV_fog_distance GL_NV_half_float GL_APPLE_packed_pixels GL_ARB_draw_buffers GL_ARB_fragment_program GL_ARB_fragment_shader GL_ARB_shader_objects GL_ARB_vertex_program GL_ARB_vertex_shader GL_ATI_draw_buffers GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_NV_primitive_restart GL_ARB_fragment_program_shadow GL_ARB_half_float_pixel GL_ARB_occlusion_query2 GL_ARB_point_sprite GL_ARB_shading_language_100 GL_ARB_sync GL_ARB_texture_non_power_of_two GL_ARB_vertex_buffer_object GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate GL_OES_read_format GL_ARB_color_buffer_float GL_ARB_pixel_buffer_object GL_ARB_texture_compression_rgtc GL_ARB_texture_float GL_ARB_texture_rectangle GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_rectangle GL_EXT_texture_sRGB GL_EXT_texture_shared_exponent GL_ARB_framebuffer_object GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_packed_depth_stencil GL_ARB_vertex_array_object GL_ATI_separate_stencil GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_texture_array GL_EXT_texture_integer GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_OES_EGL_image GL_EXT_texture_buffer_object GL_AMD_texture_texture4 GL_ARB_copy_buffer GL_ARB_depth_buffer_float GL_ARB_draw_instanced GL_ARB_half_float_vertex GL_ARB_instanced_arrays GL_ARB_map_buffer_range GL_ARB_texture_buffer_object GL_ARB_texture_rg GL_ARB_texture_swizzle GL_ARB_vertex_array_bgra GL_EXT_texture_swizzle GL_EXT_vertex_array_bgra GL_AMD_conservative_depth GL_AMD_draw_buffers_blend GL_ARB_ES2_compatibility GL_ARB_debug_output GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_explicit_attrib_location GL_ARB_fragment_coord_conventions GL_ARB_provoking_vertex GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_shader_texture_lod GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_multisample GL_ARB_texture_rgb10_a2ui GL_ARB_uniform_buffer_object GL_ARB_vertex_type_2_10_10_10_rev GL_EXT_provoking_vertex GL_EXT_texture_snorm GL_MESA_texture_signed_rgba GL_NV_copy_image GL_ARB_draw_indirect GL_ARB_get_program_binary GL_ARB_robustness GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_texture_compression_bptc GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_EXT_direct_state_access GL_AMD_multi_draw_indirect GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_internalformat_query GL_ARB_map_buffer_alignment GL_ARB_shader_atomic_counters GL_ARB_shader_image_load_store GL_ARB_shading_language_420pack GL_ARB_shading_language_packing GL_ARB_texture_storage GL_ARB_transform_feedback_instanced GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_transform_feedback GL_AMD_shader_trinary_minmax GL_ARB_arrays_of_arrays GL_ARB_clear_buffer_object GL_ARB_copy_image GL_ARB_explicit_uniform_location GL_ARB_framebuffer_no_attachments GL_ARB_invalidate_subdata GL_ARB_multi_draw_indirect GL_ARB_program_interface_query GL_ARB_robust_buffer_access_behavior GL_ARB_shader_image_size GL_ARB_shader_storage_buffer_object GL_ARB_stencil_texturing GL_ARB_texture_buffer_range GL_ARB_texture_query_levels GL_ARB_texture_storage_multisample GL_ARB_vertex_attrib_binding GL_KHR_debug GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_ARB_clear_texture GL_ARB_internalformat_query2 GL_ARB_multi_bind GL_ARB_shading_language_include GL_ARB_texture_stencil8 GL_EXT_debug_label GL_EXT_shader_integer_mix GL_ARB_get_texture_sub_image GL_EXT_polygon_offset_clamp GL_KHR_blend_equation_advanced GL_KHR_context_flush_control GL_KHR_robust_buffer_access_behavior GL_ARB_parallel_shader_compile GL_ARB_shader_atomic_counter_ops GL_EXT_texture_sRGB_R8 GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_MESA_shader_integer_functions GL_ARB_polygon_offset_clamp GL_KHR_parallel_shader_compile GL_EXT_EGL_image_storage GL_EXT_EGL_sync GL_NV_ES1_1_compatibility 
VisualID 981, 0x3d5
2612 frames in 5.0 seconds = 522.332 FPS
2653 frames in 5.0 seconds = 530.591 FPS
2645 frames in 5.0 seconds = 528.864 FPS
These users thanked the author crashoverride for the post (total 2):
brooksytech (Tue Sep 12, 2023 6:21 am) • odroid (Tue Sep 12, 2023 10:30 am)

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

One of the technically interesting aspects of the current kernel + software stack is that for the first time we can fully accelerate virtual machines. So i decided to see what would happen if I did!

I created a VM that was not only CPU accelerated (KVM) but also GPU accelerated (virgl). The result was disappointing and ironic. While it does accomplish the goal of running OpenGL 4.x in the VM. It turns out to just be far quicker to do it in software without the VM, and its also faster without GPU acceleration in the VM!

[technical note: To reproduce the results, the latest QEMU release is required. The repository version will not enable virgl in a VM.]

The VM with GPU acceleration results (using GLES). Note the renderer is 'virgl':

Code: Select all

$ glmark2-es2 --fullscreen
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa/X.org
    GL_RENDERER:    virgl (LLVMPIPE (LLVM 15.0.7, 128 bits))
    GL_VERSION:     OpenGL ES 3.2 Mesa 22.3.6
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0 samples=0
    Surface Size:   1280x768 fullscreen
=======================================================
[build] use-vbo=false: FPS: 50 FrameTime: 20.141 ms
[build] use-vbo=true: FPS: 44 FrameTime: 22.939 ms
[texture] texture-filter=nearest: FPS: 50 FrameTime: 20.111 ms
[texture] texture-filter=linear: FPS: 49 FrameTime: 20.524 ms
[texture] texture-filter=mipmap: FPS: 44 FrameTime: 23.052 ms
[shading] shading=gouraud: FPS: 36 FrameTime: 28.118 ms
[shading] shading=blinn-phong-inf: FPS: 34 FrameTime: 29.545 ms
[shading] shading=phong: FPS: 32 FrameTime: 31.640 ms
[shading] shading=cel: FPS: 33 FrameTime: 31.107 ms
[bump] bump-render=high-poly: FPS: 22 FrameTime: 47.380 ms
[bump] bump-render=normals: FPS: 49 FrameTime: 20.666 ms
[bump] bump-render=height: FPS: 48 FrameTime: 20.888 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 33 FrameTime: 30.582 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 26 FrameTime: 38.881 ms
[pulsar] light=false:quads=5:texture=false: FPS: 43 FrameTime: 23.788 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 13 FrameTime: 80.551 ms
[desktop] effect=shadow:windows=4: FPS: 22 FrameTime: 45.480 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 28 FrameTime: 36.438 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 32 FrameTime: 32.038 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 31 FrameTime: 32.436 ms
[ideas] speed=duration: FPS: 29 FrameTime: 35.273 ms
[jellyfish] <default>: FPS: 22 FrameTime: 46.369 ms
[terrain] <default>: FPS: 2 FrameTime: 655.487 ms
[shadow] <default>: FPS: 28 FrameTime: 36.987 ms
[refract] <default>: FPS: 5 FrameTime: 210.724 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 40 FrameTime: 25.142 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 39 FrameTime: 25.676 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 40 FrameTime: 25.011 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 39 FrameTime: 25.780 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 37 FrameTime: 27.256 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 40 FrameTime: 25.474 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 40 FrameTime: 25.467 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 38 FrameTime: 26.696 ms
=======================================================
                                  glmark2 Score: 32 
=======================================================
The VM without GPU acceleration results (CPU only). Note the renderer is 'llvmpipe'.

Code: Select all

$ glmark2-es2 --fullscreen
libEGL warning: DRI2: failed to authenticate
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa/X.org
    GL_RENDERER:    llvmpipe (LLVM 15.0.6, 128 bits)
    GL_VERSION:     OpenGL ES 3.2 Mesa 22.3.6
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0 samples=0
    Surface Size:   1280x768 fullscreen
=======================================================
[build] use-vbo=false: FPS: 63 FrameTime: 15.966 ms
[build] use-vbo=true: FPS: 65 FrameTime: 15.564 ms
[texture] texture-filter=nearest: FPS: 67 FrameTime: 14.965 ms
[texture] texture-filter=linear: FPS: 66 FrameTime: 15.204 ms
[texture] texture-filter=mipmap: FPS: 60 FrameTime: 16.804 ms
[shading] shading=gouraud: FPS: 54 FrameTime: 18.613 ms
[shading] shading=blinn-phong-inf: FPS: 51 FrameTime: 19.794 ms
[shading] shading=phong: FPS: 47 FrameTime: 21.738 ms
[shading] shading=cel: FPS: 47 FrameTime: 21.693 ms
[bump] bump-render=high-poly: FPS: 34 FrameTime: 30.162 ms
[bump] bump-render=normals: FPS: 65 FrameTime: 15.430 ms
[bump] bump-render=height: FPS: 66 FrameTime: 15.275 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 43 FrameTime: 23.675 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 33 FrameTime: 30.801 ms
[pulsar] light=false:quads=5:texture=false: FPS: 57 FrameTime: 17.787 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 15 FrameTime: 66.866 ms
[desktop] effect=shadow:windows=4: FPS: 28 FrameTime: 35.761 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 42 FrameTime: 24.186 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 42 FrameTime: 23.885 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 43 FrameTime: 23.698 ms
[ideas] speed=duration: FPS: 41 FrameTime: 24.436 ms
[jellyfish] <default>: FPS: 27 FrameTime: 38.194 ms
[terrain] <default>: FPS: 2 FrameTime: 543.302 ms
[shadow] <default>: FPS: 34 FrameTime: 29.419 ms
[refract] <default>: FPS: 6 FrameTime: 167.769 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 58 FrameTime: 17.519 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 56 FrameTime: 18.166 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 58 FrameTime: 17.289 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 56 FrameTime: 18.000 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 52 FrameTime: 19.362 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 56 FrameTime: 17.974 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 56 FrameTime: 18.002 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 54 FrameTime: 18.743 ms
=======================================================
                                  glmark2 Score: 45 
=======================================================
The non-VM, non-accelerated results (llvmpipe):

Code: Select all

$ glmark2 --fullscreen
** 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:   llvmpipe (LLVM 15.0.7, 128 bits)
    GL_VERSION:    4.5 (Compatibility Profile) Mesa 23.0.4-0ubuntu1~22.04.1
=======================================================
** 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: 145 FrameTime: 6.897 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: 251 FrameTime: 3.984 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: 243 FrameTime: 4.115 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: 208 FrameTime: 4.808 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: 103 FrameTime: 9.709 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: 95 FrameTime: 10.526 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: 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.
[shading] shading=cel: FPS: 85 FrameTime: 11.765 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: 44 FrameTime: 22.727 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: 231 FrameTime: 4.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.
[bump] bump-render=height: FPS: 229 FrameTime: 4.367 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: 124 FrameTime: 8.065 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: 89 FrameTime: 11.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.
[pulsar] light=false:quads=5:texture=false: 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.
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 37 FrameTime: 27.027 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: 72 FrameTime: 13.889 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: 72 FrameTime: 13.889 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: 73 FrameTime: 13.699 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: 74 FrameTime: 13.514 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: 95 FrameTime: 10.526 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: 55 FrameTime: 18.182 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: 3 FrameTime: 333.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.
[shadow] <default>: FPS: 63 FrameTime: 15.873 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: 9 FrameTime: 111.111 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: 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.
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 141 FrameTime: 7.092 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: 151 FrameTime: 6.623 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: 143 FrameTime: 6.993 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: 130 FrameTime: 7.692 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: 140 FrameTime: 7.143 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: 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.
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 133 FrameTime: 7.519 ms
=======================================================
                                  glmark2 Score: 120 
=======================================================
Finally, the baseline results - Non-VM, GPU acclerated (libmali)

Code: Select all

$ glmark2-es2-wayland --fullscreen
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-G52
    GL_VERSION:    OpenGL ES 3.2 v1.r44p0-01eac0.8b02ff6b1cc0432919bdab63d1d5d84a
=======================================================
[build] use-vbo=false: FPS: 933 FrameTime: 1.072 ms
[build] use-vbo=true: FPS: 1129 FrameTime: 0.886 ms
[texture] texture-filter=nearest: FPS: 1163 FrameTime: 0.860 ms
[texture] texture-filter=linear: FPS: 1157 FrameTime: 0.864 ms
[texture] texture-filter=mipmap: FPS: 1162 FrameTime: 0.861 ms
[shading] shading=gouraud: FPS: 1129 FrameTime: 0.886 ms
[shading] shading=blinn-phong-inf: FPS: 1118 FrameTime: 0.894 ms
[shading] shading=phong: FPS: 1030 FrameTime: 0.971 ms
[shading] shading=cel: FPS: 1037 FrameTime: 0.964 ms
[bump] bump-render=high-poly: FPS: 643 FrameTime: 1.555 ms
[bump] bump-render=normals: FPS: 1189 FrameTime: 0.841 ms
[bump] bump-render=height: FPS: 1179 FrameTime: 0.848 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 1114 FrameTime: 0.898 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 478 FrameTime: 2.092 ms
[pulsar] light=false:quads=5:texture=false: FPS: 1179 FrameTime: 0.848 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 696 FrameTime: 1.437 ms
[desktop] effect=shadow:windows=4: FPS: 1125 FrameTime: 0.889 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 357 FrameTime: 2.801 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 361 FrameTime: 2.770 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 432 FrameTime: 2.315 ms
[ideas] speed=duration: FPS: 592 FrameTime: 1.689 ms
[jellyfish] <default>: FPS: 981 FrameTime: 1.019 ms
[terrain] <default>: FPS: 65 FrameTime: 15.385 ms
[shadow] <default>: FPS: 686 FrameTime: 1.458 ms
[refract] <default>: FPS: 137 FrameTime: 7.299 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 1196 FrameTime: 0.836 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 1190 FrameTime: 0.840 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 1183 FrameTime: 0.845 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1191 FrameTime: 0.840 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 1181 FrameTime: 0.847 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1185 FrameTime: 0.844 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 1186 FrameTime: 0.843 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 1191 FrameTime: 0.840 ms
=======================================================
                                  glmark2 Score: 926 
=======================================================
These users thanked the author crashoverride for the post:
notime2d8 (Wed Sep 13, 2023 3:25 am)

notime2d8
Posts: 365
Joined: Thu Dec 11, 2014 4:40 am
languages_spoken: english
Has thanked: 116 times
Been thanked: 167 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by notime2d8 »

crashoverride wrote:
Wed Sep 13, 2023 3:16 am
One of the technically interesting aspects of the current kernel + software stack is that for the first time we can fully accelerate virtual machines. So i decided to see what would happen if I did!

I created a VM that was not only CPU accelerated (KVM) but also GPU accelerated (virgl). The result was disappointing and ironic. While it does accomplish the goal of running OpenGL 4.x in the VM. It turns out to just be far quicker to do it in software without the VM, and its also faster without GPU acceleration in the VM!

[technical note: To reproduce the results, the latest QEMU release is required. The repository version will not enable virgl in a VM.]

The VM with GPU acceleration results (using GLES). Note the renderer is 'virgl':

Code: Select all

$ glmark2-es2 --fullscreen
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa/X.org
    GL_RENDERER:    virgl (LLVMPIPE (LLVM 15.0.7, 128 bits))
    GL_VERSION:     OpenGL ES 3.2 Mesa 22.3.6
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0 samples=0
    Surface Size:   1280x768 fullscreen
=======================================================
[build] use-vbo=false: FPS: 50 FrameTime: 20.141 ms
[build] use-vbo=true: FPS: 44 FrameTime: 22.939 ms
[texture] texture-filter=nearest: FPS: 50 FrameTime: 20.111 ms
[texture] texture-filter=linear: FPS: 49 FrameTime: 20.524 ms
[texture] texture-filter=mipmap: FPS: 44 FrameTime: 23.052 ms
[shading] shading=gouraud: FPS: 36 FrameTime: 28.118 ms
[shading] shading=blinn-phong-inf: FPS: 34 FrameTime: 29.545 ms
[shading] shading=phong: FPS: 32 FrameTime: 31.640 ms
[shading] shading=cel: FPS: 33 FrameTime: 31.107 ms
[bump] bump-render=high-poly: FPS: 22 FrameTime: 47.380 ms
[bump] bump-render=normals: FPS: 49 FrameTime: 20.666 ms
[bump] bump-render=height: FPS: 48 FrameTime: 20.888 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 33 FrameTime: 30.582 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 26 FrameTime: 38.881 ms
[pulsar] light=false:quads=5:texture=false: FPS: 43 FrameTime: 23.788 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 13 FrameTime: 80.551 ms
[desktop] effect=shadow:windows=4: FPS: 22 FrameTime: 45.480 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 28 FrameTime: 36.438 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 32 FrameTime: 32.038 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 31 FrameTime: 32.436 ms
[ideas] speed=duration: FPS: 29 FrameTime: 35.273 ms
[jellyfish] <default>: FPS: 22 FrameTime: 46.369 ms
[terrain] <default>: FPS: 2 FrameTime: 655.487 ms
[shadow] <default>: FPS: 28 FrameTime: 36.987 ms
[refract] <default>: FPS: 5 FrameTime: 210.724 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 40 FrameTime: 25.142 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 39 FrameTime: 25.676 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 40 FrameTime: 25.011 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 39 FrameTime: 25.780 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 37 FrameTime: 27.256 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 40 FrameTime: 25.474 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 40 FrameTime: 25.467 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 38 FrameTime: 26.696 ms
=======================================================
                                  glmark2 Score: 32 
=======================================================
The VM without GPU acceleration results (CPU only). Note the renderer is 'llvmpipe'.

Code: Select all

$ glmark2-es2 --fullscreen
libEGL warning: DRI2: failed to authenticate
=======================================================
    glmark2 2023.01
=======================================================
    OpenGL Information
    GL_VENDOR:      Mesa/X.org
    GL_RENDERER:    llvmpipe (LLVM 15.0.6, 128 bits)
    GL_VERSION:     OpenGL ES 3.2 Mesa 22.3.6
    Surface Config: buf=32 r=8 g=8 b=8 a=8 depth=32 stencil=0 samples=0
    Surface Size:   1280x768 fullscreen
=======================================================
[build] use-vbo=false: FPS: 63 FrameTime: 15.966 ms
[build] use-vbo=true: FPS: 65 FrameTime: 15.564 ms
[texture] texture-filter=nearest: FPS: 67 FrameTime: 14.965 ms
[texture] texture-filter=linear: FPS: 66 FrameTime: 15.204 ms
[texture] texture-filter=mipmap: FPS: 60 FrameTime: 16.804 ms
[shading] shading=gouraud: FPS: 54 FrameTime: 18.613 ms
[shading] shading=blinn-phong-inf: FPS: 51 FrameTime: 19.794 ms
[shading] shading=phong: FPS: 47 FrameTime: 21.738 ms
[shading] shading=cel: FPS: 47 FrameTime: 21.693 ms
[bump] bump-render=high-poly: FPS: 34 FrameTime: 30.162 ms
[bump] bump-render=normals: FPS: 65 FrameTime: 15.430 ms
[bump] bump-render=height: FPS: 66 FrameTime: 15.275 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 43 FrameTime: 23.675 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 33 FrameTime: 30.801 ms
[pulsar] light=false:quads=5:texture=false: FPS: 57 FrameTime: 17.787 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 15 FrameTime: 66.866 ms
[desktop] effect=shadow:windows=4: FPS: 28 FrameTime: 35.761 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 42 FrameTime: 24.186 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 42 FrameTime: 23.885 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 43 FrameTime: 23.698 ms
[ideas] speed=duration: FPS: 41 FrameTime: 24.436 ms
[jellyfish] <default>: FPS: 27 FrameTime: 38.194 ms
[terrain] <default>: FPS: 2 FrameTime: 543.302 ms
[shadow] <default>: FPS: 34 FrameTime: 29.419 ms
[refract] <default>: FPS: 6 FrameTime: 167.769 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 58 FrameTime: 17.519 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 56 FrameTime: 18.166 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 58 FrameTime: 17.289 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 56 FrameTime: 18.000 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 52 FrameTime: 19.362 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 56 FrameTime: 17.974 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 56 FrameTime: 18.002 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 54 FrameTime: 18.743 ms
=======================================================
                                  glmark2 Score: 45 
=======================================================
The non-VM, non-accelerated results (llvmpipe):

Code: Select all

$ glmark2 --fullscreen
** 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:   llvmpipe (LLVM 15.0.7, 128 bits)
    GL_VERSION:    4.5 (Compatibility Profile) Mesa 23.0.4-0ubuntu1~22.04.1
=======================================================
** 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: 145 FrameTime: 6.897 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: 251 FrameTime: 3.984 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: 243 FrameTime: 4.115 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: 208 FrameTime: 4.808 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: 103 FrameTime: 9.709 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: 95 FrameTime: 10.526 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: 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.
[shading] shading=cel: FPS: 85 FrameTime: 11.765 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: 44 FrameTime: 22.727 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: 231 FrameTime: 4.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.
[bump] bump-render=height: FPS: 229 FrameTime: 4.367 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: 124 FrameTime: 8.065 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: 89 FrameTime: 11.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.
[pulsar] light=false:quads=5:texture=false: 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.
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 37 FrameTime: 27.027 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: 72 FrameTime: 13.889 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: 72 FrameTime: 13.889 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: 73 FrameTime: 13.699 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: 74 FrameTime: 13.514 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: 95 FrameTime: 10.526 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: 55 FrameTime: 18.182 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: 3 FrameTime: 333.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.
[shadow] <default>: FPS: 63 FrameTime: 15.873 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: 9 FrameTime: 111.111 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: 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.
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 141 FrameTime: 7.092 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: 151 FrameTime: 6.623 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: 143 FrameTime: 6.993 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: 130 FrameTime: 7.692 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: 140 FrameTime: 7.143 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: 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.
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 133 FrameTime: 7.519 ms
=======================================================
                                  glmark2 Score: 120 
=======================================================
Finally, the baseline results - Non-VM, GPU acclerated (libmali)

Code: Select all

$ glmark2-es2-wayland --fullscreen
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-G52
    GL_VERSION:    OpenGL ES 3.2 v1.r44p0-01eac0.8b02ff6b1cc0432919bdab63d1d5d84a
=======================================================
[build] use-vbo=false: FPS: 933 FrameTime: 1.072 ms
[build] use-vbo=true: FPS: 1129 FrameTime: 0.886 ms
[texture] texture-filter=nearest: FPS: 1163 FrameTime: 0.860 ms
[texture] texture-filter=linear: FPS: 1157 FrameTime: 0.864 ms
[texture] texture-filter=mipmap: FPS: 1162 FrameTime: 0.861 ms
[shading] shading=gouraud: FPS: 1129 FrameTime: 0.886 ms
[shading] shading=blinn-phong-inf: FPS: 1118 FrameTime: 0.894 ms
[shading] shading=phong: FPS: 1030 FrameTime: 0.971 ms
[shading] shading=cel: FPS: 1037 FrameTime: 0.964 ms
[bump] bump-render=high-poly: FPS: 643 FrameTime: 1.555 ms
[bump] bump-render=normals: FPS: 1189 FrameTime: 0.841 ms
[bump] bump-render=height: FPS: 1179 FrameTime: 0.848 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 1114 FrameTime: 0.898 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 478 FrameTime: 2.092 ms
[pulsar] light=false:quads=5:texture=false: FPS: 1179 FrameTime: 0.848 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 696 FrameTime: 1.437 ms
[desktop] effect=shadow:windows=4: FPS: 1125 FrameTime: 0.889 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 357 FrameTime: 2.801 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 361 FrameTime: 2.770 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 432 FrameTime: 2.315 ms
[ideas] speed=duration: FPS: 592 FrameTime: 1.689 ms
[jellyfish] <default>: FPS: 981 FrameTime: 1.019 ms
[terrain] <default>: FPS: 65 FrameTime: 15.385 ms
[shadow] <default>: FPS: 686 FrameTime: 1.458 ms
[refract] <default>: FPS: 137 FrameTime: 7.299 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 1196 FrameTime: 0.836 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 1190 FrameTime: 0.840 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 1183 FrameTime: 0.845 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1191 FrameTime: 0.840 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 1181 FrameTime: 0.847 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1185 FrameTime: 0.844 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 1186 FrameTime: 0.843 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 1191 FrameTime: 0.840 ms
=======================================================
                                  glmark2 Score: 926 
=======================================================
I was so excited until the second paragraph. That's a big difference in performance. 🤔

brooksytech
Posts: 101
Joined: Thu Oct 27, 2022 2:37 am
languages_spoken: english
Has thanked: 23 times
Been thanked: 85 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by brooksytech »

Interesting work on the ZINK stuff. I never had much luck either.

And thanks for the HP gpio. I was able to add it to the JELOS kernel but made a few tweaks. Still need to fix up the OS to use it but good first step.

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

notime2d8 wrote:
Wed Sep 13, 2023 3:29 am
I was so excited until the second paragraph. That's a big difference in performance.
There may still be hope. I noticed something interesting:

Code: Select all

GL_RENDERER:    virgl (LLVMPIPE (LLVM 15.0.7, 128 bits))

Code: Select all

GL_RENDERER:    llvmpipe (LLVM 15.0.6, 128 bits)
Note the difference in LLVM version. This indicated to me that the host may still be using software rendering. After exploring this further, I ripped out the Mesa binaries and started patching things to force libmali. This opened the same can of worms I have seen before:
viewtopic.php?p=365391#p365391

Everything having to do with Mesa ends up using libexpoxy. It is a dynamic loader for EGL/GL/GLES. This causes different behavior than when a program is directly linked against libEGL, libGLESv2. The issue is further complicated in that everything still assumes X11, not Wayland. So I ended up patching libexpoxy, libvirglrenderer, and then QEMU with "segfault" as my reward. When dynamically loading the libGLESv2 stub file, there are no symbols contained. You have to be a special kind of crazy to deal with linux graphics. I think I am finally there. The libmali symlink issue needs to be fixed. This would involve created a 'real' stub file that contains all the symbols and dispatches them to the actual libmali. This also presents the opportunity to add proper X11 support since I have to intercept all the EGL/GLES calls anyway. Since this is not a trivial project, I may have to put it on hold. As a reminded, I have actually been this crazy before! ;)
viewtopic.php?f=182&t=34751
brooksytech wrote:
Wed Sep 13, 2023 6:03 am
Interesting work on the ZINK stuff. I never had much luck either.
There is another path I want to explore. It is the reason for the VM research above. Zink has issues with the libmali Vulkan driver apparently. My plan is to combine Zink with Venus (Mesa virtual Vulkan) and abstract that with virglrenderer back to Mali vulkan:
OpenGL 4.x --> Zink --> Venus (VGPU) --> virglrenderer --> libmali --> GPU

The required components are still "experimental" in Mesa so this will likely have to wait for a future release before I find out if its even worth it.

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

crashoverride wrote:
Wed Sep 13, 2023 4:19 pm
The libmali symlink issue needs to be fixed. This would involve created a 'real' stub file that contains all the symbols and dispatches them to the actual libmali.
I have a prototype of this! I used libclang to read the header files and automatically generate the majority of the code. From there, I just had to do a little bit of manual clean up. This has eliminated a lot of the 'on device development' craziness! It does not affect cross-compile or building on a different device, only compilation done using the reference image.

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

crashoverride wrote:
Wed Sep 13, 2023 4:19 pm
This also presents the opportunity to add proper X11 support since I have to intercept all the EGL/GLES calls anyway.
I have been investigating this, and already hit some snags.

X11 support on Wayland is done with 'Xwayland'. Xwayland supports DRI3 (X11 protocol for getting a DMABUF on screen). However, this feature is supported by 'glamour'. After much investigation, I finally discovered why 'glamour' does not work on ARM boards with Mali. It is due to the lack of a "render node" (/dev/dri/renderD128).
https://gitlab.freedesktop.org/xorg/xse ... heads#L999

Without a "render node", the "wl_dma" Weston protocol does not work. Which means 'glamour' does not work. Which means DRI3 is not available. Which means CPU copying will be required. However, on a real X11 environment, DRI3 should work so both will need to be supported. I have already created a DRI3 sample program as a prototype.

Over the next week, I will add a CPU copy path and hopefully enough plumbing to get X11 EGL/GLES acceleration to proof-of-concept.
These users thanked the author crashoverride for the post (total 2):
brooksytech (Fri Sep 15, 2023 4:20 am) • odroid (Fri Sep 15, 2023 9:15 am)

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

crashoverride wrote:
Fri Sep 15, 2023 12:56 am
Which means CPU copying will be required.
I investigated different ways of accomplishing this. I settled on the following design:
dma-buf -> map -> xcb_image -> xcb_pixmap -> x11 present extension -> unmap

The copying is very CPU intensive. If there are any X11 extension design people interested, there is a very simple change that would solve a lot of problems. Break up DRI3 into two extensions! Move "DRI3PixmapFromBuffer" and "DRI3BufferFromPixmap" to their own extension and make DRI3 dependent on it.
https://cgit.freedesktop.org/xorg/proto ... 3proto.txt

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

crashoverride wrote:
Fri Sep 15, 2023 12:56 am
Over the next week, I will add a CPU copy path and hopefully enough plumbing to get X11 EGL/GLES acceleration to proof-of-concept.
I have just enough of it working to run glmark2-es2. So, it can be done! However, the FPS is actually worse than software emulated (see above post for OpenGL results). :D

I have no idea how to take a screen shot in Wayland, so the console output is posted below instead. I will continue the adventure next week!

Code: Select all

$ glmark2-es2
gbm library loaded.
EGL library loaded.
Open Render Node: fd=4
GBM open: gbm=0xaaab08cac8c0
visual_id = 35
GLESv3 library loaded.
w=800, h=600, format=34325241
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-G52
    GL_VERSION:    OpenGL ES 3.2 v1.r40p0-01eac0.06c59e7df4d178b1ae2ad8082e91ad02
=======================================================
[build] use-vbo=false: FPS: 108 FrameTime: 9.259 ms
[build] use-vbo=true: FPS: 111 FrameTime: 9.009 ms
[texture] texture-filter=nearest: FPS: 112 FrameTime: 8.929 ms
[texture] texture-filter=linear: FPS: 113 FrameTime: 8.850 ms
[texture] texture-filter=mipmap: FPS: 112 FrameTime: 8.929 ms
[shading] shading=gouraud: FPS: 107 FrameTime: 9.346 ms
[shading] shading=blinn-phong-inf: FPS: 107 FrameTime: 9.346 ms
[shading] shading=phong: FPS: 105 FrameTime: 9.524 ms
[shading] shading=cel: FPS: 105 FrameTime: 9.524 ms
[bump] bump-render=high-poly: FPS: 95 FrameTime: 10.526 ms
[bump] bump-render=normals: FPS: 114 FrameTime: 8.772 ms
[bump] bump-render=height: FPS: 113 FrameTime: 8.850 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 105 FrameTime: 9.524 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 90 FrameTime: 11.111 ms
[pulsar] light=false:quads=5:texture=false: FPS: 110 FrameTime: 9.091 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 93 FrameTime: 10.753 ms
[desktop] effect=shadow:windows=4: FPS: 109 FrameTime: 9.174 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 83 FrameTime: 12.048 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 83 FrameTime: 12.048 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 89 FrameTime: 11.236 ms
[ideas] speed=duration: FPS: 91 FrameTime: 10.989 ms
[jellyfish] <default>: FPS: 100 FrameTime: 10.000 ms
[terrain] <default>: FPS: 40 FrameTime: 25.000 ms
[shadow] <default>: FPS: 95 FrameTime: 10.526 ms
[refract] <default>: FPS: 58 FrameTime: 17.241 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 110 FrameTime: 9.091 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 109 FrameTime: 9.174 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 110 FrameTime: 9.091 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 109 FrameTime: 9.174 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 109 FrameTime: 9.174 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 109 FrameTime: 9.174 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 109 FrameTime: 9.174 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 110 FrameTime: 9.091 ms
=======================================================
                                  glmark2 Score: 100 
=======================================================
X connection to :0.0 broken (explicit kill or server shutdown).
These users thanked the author crashoverride for the post:
odroid (Mon Sep 18, 2023 9:51 am)

User avatar
rooted
Posts: 10627
Joined: Fri Dec 19, 2014 9:12 am
languages_spoken: english
Location: Gulf of Mexico, US
Has thanked: 822 times
Been thanked: 736 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by rooted »

It's always interesting to read your dev entries, I can't help but feel bad when I see negative results from hours of work. But I guess knowledge gained is the positive spin.

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

Well, i finally tracked down what I would consider a bug in the xserver code. I have no idea how its even working. Rather than argue over a mailing list and waiting for a patch to land in various distros, I will just work around it! :D

With my "fix" the X11 modesetting driver now works with 'glamor' providing DRI3. I added DRI3 presentation in my wrapper. The following is the result:

Code: Select all

$ glmark2-es2 
gbm library loaded.
EGL library loaded.
DRI3 1.2
DRI3 Open: fd=5
GBM open: gbm=0xaaaabdf9c960
visual_id = 33
GLESv3 library loaded.
w=800, h=600, format=34325241
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-G52
    GL_VERSION:    OpenGL ES 3.2 v1.r40p0-01eac0.06c59e7df4d178b1ae2ad8082e91ad02
=======================================================
[build] use-vbo=false: FPS: 1034 FrameTime: 0.967 ms
[build] use-vbo=true: FPS: 1396 FrameTime: 0.716 ms
[texture] texture-filter=nearest: FPS: 1644 FrameTime: 0.608 ms
[texture] texture-filter=linear: FPS: 1639 FrameTime: 0.610 ms
[texture] texture-filter=mipmap: FPS: 1620 FrameTime: 0.617 ms
[shading] shading=gouraud: FPS: 1027 FrameTime: 0.974 ms
[shading] shading=blinn-phong-inf: FPS: 1008 FrameTime: 0.992 ms
[shading] shading=phong: FPS: 899 FrameTime: 1.112 ms
[shading] shading=cel: FPS: 897 FrameTime: 1.115 ms
[bump] bump-render=high-poly: FPS: 492 FrameTime: 2.033 ms
[bump] bump-render=normals: FPS: 1866 FrameTime: 0.536 ms
[bump] bump-render=height: FPS: 1741 FrameTime: 0.574 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 819 FrameTime: 1.221 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 365 FrameTime: 2.740 ms
[pulsar] light=false:quads=5:texture=false: FPS: 1447 FrameTime: 0.691 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 442 FrameTime: 2.262 ms
[desktop] effect=shadow:windows=4: FPS: 1298 FrameTime: 0.770 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 291 FrameTime: 3.436 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 288 FrameTime: 3.472 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 353 FrameTime: 2.833 ms
[ideas] speed=duration: FPS: 426 FrameTime: 2.347 ms
[jellyfish] <default>: FPS: 671 FrameTime: 1.490 ms
[terrain] <default>: FPS: 59 FrameTime: 16.949 ms
[shadow] <default>: FPS: 511 FrameTime: 1.957 ms
[refract] <default>: FPS: 113 FrameTime: 8.850 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 1309 FrameTime: 0.764 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 1276 FrameTime: 0.784 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 1293 FrameTime: 0.773 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 1261 FrameTime: 0.793 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 1243 FrameTime: 0.805 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 1247 FrameTime: 0.802 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 1247 FrameTime: 0.802 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 1284 FrameTime: 0.779 ms
=======================================================
                                  glmark2 Score: 985 
=======================================================
X connection to :1 broken (explicit kill or server shutdown).
I should mention there is some kind of bug in the DSI panel driver. Like the mali bug from before, it seems to be a race-condition with other things. Its never predictable when it will happen at boot. However, I did find a way to reproduce it: With the modesetting driver, attempting to change the display rotation will cause a kernel panic>

Code: Select all

[ 2461.307444] meson-dw-mipi-dsi ffd07000.mipi-dsi: failed to write O
[ 2461.803227] vcc_lcd: Underflow of regulator enable count                     
[ 2461.803255] Failed to disable IOVCC: -EINVAL                                 
[ 2462.925828] Kernel panic - not syncing: GAMMA NOT SET                        
[ 2462.925853] SMP: stopping secondary CPUs                                     
[ 2462.929130] Kernel Offset: disabled                                          
[ 2462.932576] CPU features: 0x00000,01834080,0000421b                          
[ 2462.937406] Memory Limit: none                                               
[ 2462.940427] ---[ end Kernel panic - not syncing: GAMMA NOT SET ]---          
These users thanked the author crashoverride for the post:
odroid (Tue Sep 19, 2023 10:45 pm)

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

crashoverride wrote:
Tue Sep 19, 2023 9:37 pm
[ 2462.925828] Kernel panic - not syncing: GAMMA NOT SET
The following patch works around the issue enough to enable rotation in X11. I have noticed that its more likely to happen at boot if I have USB devices attached. So, it likely is some kind of race condition. It can also be triggered by attaching the USB-OTG cable during kernel initialization.

Code: Select all

diff --git a/drivers/gpu/drm/meson/meson_venc.c b/drivers/gpu/drm/meson/meson_venc.c
index 9482d9f21..0f6943cb5 100644
--- a/drivers/gpu/drm/meson/meson_venc.c
+++ b/drivers/gpu/drm/meson/meson_venc.c
@@ -1589,8 +1589,8 @@ static void meson_encl_set_gamma_table(struct meson_drm *priv, u16 *data,
        ret = readl_relaxed_poll_timeout(priv->io_base + _REG(L_GAMMA_CNTL_PORT),
                                         reg, reg & L_GAMMA_CNTL_PORT_ADR_RDY, 10, 10000);
        if (ret)
-               //pr_warn("%s: GAMMA ADR_RDY timeout\n", __func__);
-               panic("GAMMA NOT SET");
+               pr_warn("%s: GAMMA ADR_RDY timeout\n", __func__);
+               //panic("GAMMA NOT SET");
        writel_relaxed(L_GAMMA_ADDR_PORT_AUTO_INC | rgb_mask |
                       FIELD_PREP(L_GAMMA_ADDR_PORT_ADDR, 0),
                       priv->io_base + _REG(L_GAMMA_ADDR_PORT));
@@ -1600,16 +1600,16 @@ static void meson_encl_set_gamma_table(struct meson_drm *priv, u16 *data,
                                                 reg, reg & L_GAMMA_CNTL_PORT_WR_RDY,
                                                 10, 10000);
                if (ret)
-                       //pr_warn_once("%s: GAMMA WR_RDY timeout\n", __func__);
-                       panic("GAMMA NOT SET");
+                       pr_warn_once("%s: GAMMA WR_RDY timeout\n", __func__);
+                       //panic("GAMMA NOT SET");
                writel_relaxed(data[i], priv->io_base + _REG(L_GAMMA_DATA_PORT));
        }
 
        ret = readl_relaxed_poll_timeout(priv->io_base + _REG(L_GAMMA_CNTL_PORT),

brooksytech
Posts: 101
Joined: Thu Oct 27, 2022 2:37 am
languages_spoken: english
Has thanked: 23 times
Been thanked: 85 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by brooksytech »

crashoverride wrote:
Tue Sep 19, 2023 9:37 pm
[ 2462.925828] Kernel panic - not syncing: GAMMA NOT SET
I added the kernel panic bits, which was pulled into mdrjr's kernel. The problem is that 1 out of every 2/3 boots the gamma is not getting set correctly and everything either has a blue or yellow tint to it.

For JELOS I got around this by panicking the kernel and setting the device to reboot immediately via the kernel config. Yes I know this is a HACK but it works until the gamma issue is no longer present.

edit: I also was wondering if maybe the vulkan driver was causing but issues persisted with swrast.

crashoverride
Posts: 5874
Joined: Tue Dec 30, 2014 8:42 pm
languages_spoken: english
ODROIDs: C1
Has thanked: 0
Been thanked: 651 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by crashoverride »

... and my insanity continues!

I now have enough plumbing to actually run Weston on X11 with the x11backend+opengles!

Code: Select all

$ glmark2-es2-wayland 
gbm library loaded.
EGL library loaded.
DRI3 1.2
DRI3 Open: fd=6
GBM open: gbm=0xaaaaf77c79e0
EGL: eglGetPlatformDisplayEXT - platform = 0x31d8, native_display = 0xaaaaf77b7db0
GLESv3 library loaded.
EGL: eglCreateWindowSurface = 0xaaaaf78088b0
=======================================================
    glmark2 2021.02
=======================================================
    OpenGL Information
    GL_VENDOR:     ARM
    GL_RENDERER:   Mali-G52
    GL_VERSION:    OpenGL ES 3.2 v1.r40p0-01eac0.06c59e7df4d178b1ae2ad8082e91ad02
=======================================================
[build] use-vbo=false: FPS: 687 FrameTime: 1.456 ms
[build] use-vbo=true: FPS: 767 FrameTime: 1.304 ms
[texture] texture-filter=nearest: FPS: 804 FrameTime: 1.244 ms
[texture] texture-filter=linear: FPS: 808 FrameTime: 1.238 ms
[texture] texture-filter=mipmap: FPS: 803 FrameTime: 1.245 ms
[shading] shading=gouraud: FPS: 767 FrameTime: 1.304 ms
[shading] shading=blinn-phong-inf: FPS: 765 FrameTime: 1.307 ms
[shading] shading=phong: FPS: 720 FrameTime: 1.389 ms
[shading] shading=cel: FPS: 731 FrameTime: 1.368 ms
[bump] bump-render=high-poly: FPS: 497 FrameTime: 2.012 ms
[bump] bump-render=normals: FPS: 827 FrameTime: 1.209 ms
[bump] bump-render=height: FPS: 822 FrameTime: 1.217 ms
[effect2d] kernel=0,1,0;1,-4,1;0,1,0;: FPS: 783 FrameTime: 1.277 ms
[effect2d] kernel=1,1,1,1,1;1,1,1,1,1;1,1,1,1,1;: FPS: 399 FrameTime: 2.506 ms
[pulsar] light=false:quads=5:texture=false: FPS: 811 FrameTime: 1.233 ms
[desktop] blur-radius=5:effect=blur:passes=1:separable=true:windows=4: FPS: 465 FrameTime: 2.151 ms
[desktop] effect=shadow:windows=4: FPS: 764 FrameTime: 1.309 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 296 FrameTime: 3.378 ms
[buffer] columns=200:interleave=false:update-dispersion=0.9:update-fraction=0.5:update-method=subdata: FPS: 291 FrameTime: 3.436 ms
[buffer] columns=200:interleave=true:update-dispersion=0.9:update-fraction=0.5:update-method=map: FPS: 360 FrameTime: 2.778 ms
[ideas] speed=duration: FPS: 472 FrameTime: 2.119 ms
[jellyfish] <default>: FPS: 677 FrameTime: 1.477 ms
[terrain] <default>: FPS: 59 FrameTime: 16.949 ms
[shadow] <default>: FPS: 471 FrameTime: 2.123 ms
[refract] <default>: FPS: 108 FrameTime: 9.259 ms
[conditionals] fragment-steps=0:vertex-steps=0: FPS: 806 FrameTime: 1.241 ms
[conditionals] fragment-steps=5:vertex-steps=0: FPS: 802 FrameTime: 1.247 ms
[conditionals] fragment-steps=0:vertex-steps=5: FPS: 807 FrameTime: 1.239 ms
[function] fragment-complexity=low:fragment-steps=5: FPS: 805 FrameTime: 1.242 ms
[function] fragment-complexity=medium:fragment-steps=5: FPS: 805 FrameTime: 1.242 ms
[loop] fragment-loop=false:fragment-steps=5:vertex-steps=5: FPS: 808 FrameTime: 1.238 ms
[loop] fragment-steps=5:fragment-uniform=false:vertex-steps=5: FPS: 803 FrameTime: 1.245 ms
[loop] fragment-steps=5:fragment-uniform=true:vertex-steps=5: FPS: 804 FrameTime: 1.244 ms
=======================================================
                                  glmark2 Score: 648 
=======================================================
So far, the following has been achieved:
1) Proper symbols in libgbm, libEGL, and libGLESv2 removing all the on-device compile linker issues.
2) The EGL_EXT_platform_x11 extension is now supported allowing for GBM, X11, and Wayland operation with libmali.
3) The "creative" use of EGL in the X11 modesetting driver has been worked around. This allows 'glamor' to load and gives X11 acceleration, xrandr rotation support, and DRI3 support with tear free rendering.
4) Wayland on X11 is now hardware accelerated with GLESv2. Currently only Duckstation is able to use Vulkan on Wayland on X11.
These users thanked the author crashoverride for the post (total 5):
odroid (Wed Sep 20, 2023 11:13 am) • Slaminger (Tue Sep 26, 2023 4:54 am) • Andyyy (Mon Oct 16, 2023 3:53 pm) • 1ccs-todd (Tue Oct 31, 2023 6:00 pm) • allanmac (Wed Dec 06, 2023 3:20 pm)

GinKage
Posts: 14
Joined: Tue Nov 01, 2022 7:28 am
languages_spoken: english
ODROIDs: N2+, GO-Ultra
Has thanked: 0
Been thanked: 4 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by GinKage »

There are a couple new blobs on Arm website: r45p0-01eac0 and r46p0-01eac1 (note the "1" at the end...).

Update: They've also released a corresponding new kernel driver, with 6.2+ support.
These users thanked the author GinKage for the post:
allanmac (Tue Nov 28, 2023 3:42 am)

allanmac
Posts: 31
Joined: Mon May 04, 2020 2:00 am
languages_spoken: english
ODROIDs: N2
Location: South Florida, USA
Has thanked: 19 times
Been thanked: 11 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by allanmac »

GinKage wrote:
Fri Nov 24, 2023 3:09 am
There are a couple new blobs on Arm website: r45p0-01eac0 and r46p0-01eac1 (note the "1" at the end...).
This is great! The G52 6EE is pretty decent.

mdrjr
Site Admin
Posts: 12111
Joined: Fri Feb 22, 2013 11:34 pm
languages_spoken: english, portuguese
ODROIDs: -
Location: Brazil
Has thanked: 8 times
Been thanked: 154 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by mdrjr »

Current image, after update you can choose between r40, r44 and r46.
These users thanked the author mdrjr for the post (total 2):
odroid (Tue Dec 05, 2023 9:17 am) • allanmac (Wed Dec 06, 2023 1:55 am)

GinKage
Posts: 14
Joined: Tue Nov 01, 2022 7:28 am
languages_spoken: english
ODROIDs: N2+, GO-Ultra
Has thanked: 0
Been thanked: 4 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by GinKage »

New Mali drivers alert: kernel r49 (circa 17/04), userspace r47 (circa 25/04).

rohezalzal
Posts: 28
Joined: Mon Apr 15, 2024 10:13 pm
languages_spoken: english
ODROIDs: odroid ultra go
Has thanked: 3 times
Been thanked: 1 time
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by rohezalzal »

Is there a mali driver for kernel 5.4 (Ubuntu 20.04) which supports Vulkan? Would be nice for emulation on the stock HK image.

allanmac
Posts: 31
Joined: Mon May 04, 2020 2:00 am
languages_spoken: english
ODROIDs: N2
Location: South Florida, USA
Has thanked: 19 times
Been thanked: 11 times
Contact:

Re: Ubuntu 22.04 + Kernel 6.1 + Mali Vulkan Support

Post by allanmac »

R49 user-space blobs are up.

Date of tar is May 13, 2024.

Post Reply

Return to “Platform development”

Who is online

Users browsing this forum: No registered users and 1 guest