You are not logged in.

#1 2024-10-25 18:26:59

matesz
Member
Registered: 2024-10-25
Posts: 6

Random stutters/frame drops with high refresh

Hi
Just got myself new laptop, and decided to finally switch it to arch over the weekend.

neofetch:

matesz@laktop 
------------- 
OS: Arch Linux x86_64 
Host: ASUS Zenbook S 16 UM5606WA_UM5606WA 1.0 
Kernel: 6.11.5-arch1-1 
Uptime: 1 hour, 50 mins 
Packages: 779 (pacman), 9 (flatpak) 
Shell: bash 5.2.37 
Resolution: 2880x1800 
DE: Plasma 6.2.2 
WM: kwin 
Theme: Breeze-Dark [GTK2], Breeze [GTK3] 
Icons: breeze-dark [GTK2/3] 
Terminal: konsole 
CPU: AMD Ryzen AI 9 HX 370 w/ Radeon 890M (24) @ 4.367GHz 
GPU: AMD ATI Radeon 880M / 890M 
Memory: 4786MiB / 31197MiB 

To be honets i was actually suprised how easy it was to set up, unfortunately i've noticed strange dips in FPS. Dips are very noticeable by 'feel', sometimes going to 2-3fps.

GLXGEARS -info

Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
GL_RENDERER   = AMD Radeon Graphics (radeonsi, gfx1150, LLVM 18.1.8, DRM 3.59, 6.11.5-arch1-1)
GL_VERSION    = 4.6 (Compatibility Profile) Mesa 24.2.5-arch1.1
GL_VENDOR     = AMD
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_copy_depth_to_color GL_NV_depth_clamp 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_depth_bounds_test GL_EXT_shadow_funcs GL_EXT_stencil_wrap GL_MESA_pack_invert GL_NV_primitive_restart GL_ARB_depth_clamp 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_mirror_clamp 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_ATI_texture_mirror_once 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_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_NV_conditional_render GL_AMD_conservative_depth GL_AMD_depth_clamp_separate GL_AMD_draw_buffers_blend GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_ARB_ES2_compatibility GL_ARB_blend_func_extended 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_stencil_export 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_ARB_vertex_type_2_10_10_10_rev GL_ATI_meminfo GL_EXT_provoking_vertex GL_EXT_texture_snorm GL_EXT_texture_storage 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_gpu_shader_fp64 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_ARB_vertex_attrib_64bit GL_ARB_viewport_array GL_EXT_direct_state_access GL_EXT_shader_image_load_store GL_EXT_vertex_attrib_64bit GL_NV_vdpau_interop 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_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_clear_buffer_object GL_ARB_compute_shader GL_ARB_copy_image GL_ARB_explicit_uniform_location GL_ARB_fragment_layer_viewport 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_AMD_pinned_memory GL_ARB_bindless_texture GL_ARB_buffer_storage GL_ARB_clear_texture GL_ARB_compute_variable_group_size GL_ARB_enhanced_layouts GL_ARB_indirect_parameters 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_sparse_texture GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_stencil8 GL_ARB_vertex_type_10f_11f_11f_rev GL_EXT_debug_label GL_EXT_shader_integer_mix GL_NVX_gpu_memory_info GL_ARB_ES3_1_compatibility GL_ARB_clip_control GL_ARB_conditional_render_inverted GL_ARB_cull_distance GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_get_texture_sub_image GL_ARB_pipeline_statistics_query GL_ARB_shader_texture_image_samples GL_ARB_sparse_buffer 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_context_flush_control GL_KHR_robust_buffer_access_behavior GL_NV_shader_atomic_int64 GL_ARB_ES3_2_compatibility GL_ARB_gpu_shader_int64 GL_ARB_parallel_shader_compile GL_ARB_post_depth_coverage GL_ARB_shader_atomic_counter_ops GL_ARB_shader_ballot GL_ARB_shader_clock GL_ARB_shader_viewport_layer_array GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_texture_filter_minmax GL_EXT_texture_filter_minmax 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_EXT_window_rectangles 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_NV_alpha_to_coverage_dither_control GL_EXT_EGL_image_storage GL_EXT_texture_shadow_lod GL_INTEL_blackhole_render GL_MESA_framebuffer_flip_y GL_NV_compute_shader_derivatives GL_EXT_EGL_sync GL_EXT_demote_to_helper_invocation GL_EXT_EGL_image_storage_compression GL_NV_ES1_1_compatibility GL_MESA_texture_const_bandwidth 
VisualID 955, 0x3bb
588 frames in 5.0 seconds = 117.541 FPS
576 frames in 5.0 seconds = 115.122 FPS
581 frames in 5.0 seconds = 116.101 FPS
600 frames in 5.0 seconds = 119.919 FPS
432 frames in 5.0 seconds = 86.160 FPS
271 frames in 5.0 seconds = 54.117 FPS
550 frames in 5.0 seconds = 109.815 FPS
594 frames in 5.0 seconds = 118.607 FPS
337 frames in 5.0 seconds = 67.055 FPS
252 frames in 5.0 seconds = 50.238 FPS
252 frames in 5.0 seconds = 50.249 FPS
478 frames in 5.0 seconds = 95.576 FPS
576 frames in 5.0 seconds = 115.017 FPS
600 frames in 5.0 seconds = 119.924 FPS
598 frames in 5.0 seconds = 119.436 FPS
598 frames in 5.0 seconds = 119.439 FPS

lspci -k

c4:00.0 Display controller: Advanced Micro Devices, Inc. [AMD/ATI] Strix [Radeon 880M / 890M] (rev c1)
        Subsystem: ASUSTeK Computer Inc. Device 1df3
        Kernel driver in use: amdgpu
        Kernel modules: amdgpu

note: i am on sync: never; both dynamic and on causes crashes.

If you have any idea where can I dig for the solution please let me know as frames are very unstable.

Last edited by matesz (2024-10-26 08:59:02)

Offline

#2 2024-10-26 07:29:42

matesz
Member
Registered: 2024-10-25
Posts: 6

Re: Random stutters/frame drops with high refresh

More details:

glxinfo -B

name of display: :1
display: :1  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: AMD (0x1002)
    Device: AMD Radeon Graphics (radeonsi, gfx1150, LLVM 18.1.8, DRM 3.59, 6.11.5-arch1-1) (0x150e)
    Version: 24.2.5
    Accelerated: yes
    Video memory: 512MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.6
    Max compat profile version: 4.6
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
Memory info (GL_ATI_meminfo):
    VBO free memory - total: 48 MB, largest block: 48 MB
    VBO free aux. memory - total: 14756 MB, largest block: 14756 MB
    Texture free memory - total: 48 MB, largest block: 48 MB
    Texture free aux. memory - total: 14756 MB, largest block: 14756 MB
    Renderbuffer free memory - total: 48 MB, largest block: 48 MB
    Renderbuffer free aux. memory - total: 14756 MB, largest block: 14756 MB
Memory info (GL_NVX_gpu_memory_info):
    Dedicated video memory: 512 MB
    Total available memory: 16110 MB
    Currently available dedicated video memory: 48 MB
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon Graphics (radeonsi, gfx1150, LLVM 18.1.8, DRM 3.59, 6.11.5-arch1-1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 24.2.5-arch1.1
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.6 (Compatibility Profile) Mesa 24.2.5-arch1.1
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 24.2.5-arch1.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

vainfo

Trying display: wayland
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Mesa Gallium driver 24.2.5-arch1.1 for AMD Radeon Graphics (radeonsi, gfx1150, LLVM 18.1.8, DRM 3.59, 6.11.5-arch1-1)
vainfo: Supported profile and entrypoints
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
      VAProfileAV1Profile0            : VAEntrypointVLD
      VAProfileAV1Profile0            : VAEntrypointEncSlice
      VAProfileNone                   : VAEntrypointVideoProc

grep -iE 'vdpau | dri driver' /var/log/Xorg.0.log

[    10.925] (II) AMDGPU(0): [DRI2]   DRI driver: radeonsi
[    10.925] (II) AMDGPU(0): [DRI2]   VDPAU driver: radeonsi

ls /usr/lib/dri/ | grep radeon

radeonsi_dri.so
radeonsi_drv_video.so

Firefox has correct "WebRender" flag
No crash reports in FF
media.hardware-video-decoding.force-enabled is set to false

I'm really out of ideas at this point sad
Issue seems to be most visible after switching between applications

Edit: Dropping to 60Hz does not solve the issue - now drops on glxgears are to ~30FPS

Last edited by matesz (2024-10-26 09:04:18)

Offline

#3 2024-10-26 09:33:44

matesz
Member
Registered: 2024-10-25
Posts: 6

Re: Random stutters/frame drops with high refresh

After changing scaling to 100% all problems went away.

Is it something common?
Can i fix it somehow?

Scaling 100% is unusable on this resolution and screen size - text is less than 3mm in size

Offline

#4 2024-10-26 09:53:02

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 23,300

Re: Random stutters/frame drops with high refresh

Are you on a xorg or wayland session? Does it make a difference?

Offline

#5 2024-10-26 09:57:07

matesz
Member
Registered: 2024-10-25
Posts: 6

Re: Random stutters/frame drops with high refresh

env | grep -E -i 'x11|xorg|wayland'

XDG_SESSION_TYPE=wayland
WAYLAND_DISPLAY=wayland-0
QT_WAYLAND_RECONNECT=1

on Xorg it technically shows 120fps on glxgears but many things are off:
- Scaling is not complete (cursor is not scaled, many windows are not scaled)
- Despite technically being 120fps it 'feels' like it's below 30fps. i visibly see choppiness of mouse in desktop
- There are flashes of grey horizontal stripes

(yes, i reboot the pc after changing scaling)

Last edited by matesz (2024-10-26 10:10:32)

Offline

#6 2024-10-26 15:53:14

seth
Member
Registered: 2012-09-03
Posts: 59,045

Re: Random stutters/frame drops with high refresh

Scaling 100% is unusable on this resolution and screen size - text is less than 3mm in size

https://wiki.archlinux.org/title/HiDPI#Qt_5

As for X11, please post your Xorg log, https://wiki.archlinux.org/title/Xorg#General try w/o xf86-video-amdgpu resp. w/ the kwin compositor suspended (SHIFT+alt+F12 toggles it) although notably the cursor should™ becompletely unaffected by anything else.

Edit: also consider to simply run the monitor at a lower resolution rather than at a high resolution and scaling the entire render down.

Last edited by seth (2024-10-26 15:54:07)

Offline

Board footer

Powered by FluxBB