- 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)
I've not been keeping up apparently as I didn't know USB 4 was a thing yet...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
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.
I checked the panel driver timings:crashoverride wrote: ↑Fri Sep 08, 2023 2:18 am3) 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.
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 ]---
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.crashoverride wrote: ↑Fri Sep 08, 2023 4:51 amI checked the panel driver timings:crashoverride wrote: ↑Fri Sep 08, 2023 2:18 am3) 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.
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 withChecking 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.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 ]---
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 {
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 ------------
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
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
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
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
=======================================================
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
=======================================================
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
=======================================================
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.crashoverride wrote: ↑Wed Sep 13, 2023 3:16 amOne 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':The VM without GPU acceleration results (CPU only). Note the renderer is 'llvmpipe'.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 non-VM, non-accelerated results (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 =======================================================
Finally, the baseline results - Non-VM, GPU acclerated (libmali)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 =======================================================
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 =======================================================
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)
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:brooksytech wrote: ↑Wed Sep 13, 2023 6:03 amInteresting work on the ZINK stuff. I never had much luck either.
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 wrote: ↑Wed Sep 13, 2023 4:19 pmThe 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 been investigating this, and already hit some snags.crashoverride wrote: ↑Wed Sep 13, 2023 4:19 pmThis also presents the opportunity to add proper X11 support since I have to intercept all the EGL/GLES calls anyway.
I investigated different ways of accomplishing this. I settled on the following design:
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).crashoverride wrote: ↑Fri Sep 15, 2023 12:56 amOver the next week, I will add a CPU copy path and hopefully enough plumbing to get X11 EGL/GLES acceleration to proof-of-concept.
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).
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).
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 ]---
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.crashoverride wrote: ↑Tue Sep 19, 2023 9:37 pm[ 2462.925828] Kernel panic - not syncing: GAMMA NOT SET
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),
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.crashoverride wrote: ↑Tue Sep 19, 2023 9:37 pm[ 2462.925828] Kernel panic - not syncing: GAMMA NOT SET
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
=======================================================
Users browsing this forum: No registered users and 1 guest