Closed Bug 1744896 Opened 3 years ago Closed 3 years ago

WR/Gnome+KDE Wayland/AMD: Firefox 95 locked to 120 fps, unsmooth scrolling

Categories

(Core :: Widget: Gtk, defect, P3)

Firefox 95
x86_64
Linux
defect

Tracking

()

RESOLVED FIXED
97 Branch
Tracking Status
firefox-esr91 --- unaffected
firefox95 --- wontfix
firefox96 --- fixed
firefox97 --- fixed

People

(Reporter: yalterz, Assigned: rmader)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(9 files)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0

Steps to reproduce:

Updated to Firefox 95.

Actual results:

After an update to Firefox 95 (I use the Flathub package with the Wayland socket and MOZ_ENABLE_WAYLAND=1) it became locked to 120 FPS according to testufo.com on my 144 Hz monitor. Also smooth scrolling looks very janky even when I change the monitor to 120 Hz to match Firefox.

I use Fedora 35 Silverblue with GNOME 41 on Wayland. The same happens in a new Firefox profile.

Application Basics
------------------

Name: Firefox
Version: 95.0
Build ID: 20211129150630
Distribution ID: mozilla-flatpak
Update Channel: release
User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0
OS: Linux 5.15.6-200.fc35.x86_64 #1 SMP Wed Dec 1 13:41:10 UTC 2021
OS Theme: Adwaita / Adwaita
Multiprocess Windows: 1/1
Fission Windows: 1/1 Enabled by phased rollout
Remote Processes: 8
Enterprise Policies: Active
Google Location Service Key: Found
Google Safebrowsing Key: Found
Mozilla Location Service Key: Found
Safe Mode: false

Crash Reports for the Last 3 Days
---------------------------------

Firefox Features
----------------

Name: DoH Roll-Out
Version: 2.0.0
ID: doh-rollout@mozilla.org

Name: Firefox Screenshots
Version: 39.0.1
ID: screenshots@mozilla.org

Name: Form Autofill
Version: 1.0.1
ID: formautofill@mozilla.org

Name: Picture-In-Picture
Version: 1.0.0
ID: pictureinpicture@mozilla.org

Name: Proxy Failover
Version: 1.0.2
ID: proxy-failover@mozilla.com

Name: Web Compatibility Interventions
Version: 28.0.0
ID: webcompat@mozilla.org

Name: WebCompat Reporter
Version: 1.4.2
ID: webcompat-reporter@mozilla.org

Remote Features
---------------

bug-1690367-rollout-moving-webrtc-networking-functionality-into-i-release-87-100: active
bug-1715474-rollout-yandex-sponsored-tile-rollout-release-89-100: active
bug-1732206-rollout-fission-release-rollout-release-94-95: active

Remote Processes
----------------

Type: Privileged About
Count: 1

Type: Extension
Count: 1

Type: Isolated Web Content
Count: 2

Type: Preallocated
Count: 3

Type: Socket
Count: 1

Add-ons
-------

Name: Russian spellchecking dictionary
Type: dictionary
Version: 0.4.5.1webext
Enabled: true
ID: ru@dictionaries.addons.mozilla.org

Name: Add-ons Search Detection
Type: extension
Version: 2.0.0
Enabled: true
ID: addons-search-detection@mozilla.com

Name: Amazon.com
Type: extension
Version: 1.3
Enabled: true
ID: amazondotcom@search.mozilla.org

Name: Bing
Type: extension
Version: 1.3
Enabled: true
ID: bing@search.mozilla.org

Name: DuckDuckGo
Type: extension
Version: 1.1
Enabled: true
ID: ddg@search.mozilla.org

Name: Firefox Multi-Account Containers
Type: extension
Version: 8.0.2
Enabled: true
ID: @testpilot-containers

Name: FrankerFaceZ
Type: extension
Version: 4.0
Enabled: true
ID: frankerfacez@frankerfacez.com

Name: GNOME Shell integration
Type: extension
Version: 10.1
Enabled: true
ID: chrome-gnome-shell@gnome.org

Name: Google
Type: extension
Version: 1.1
Enabled: true
ID: google@search.mozilla.org

Name: HTTPS Everywhere
Type: extension
Version: 2021.7.13
Enabled: true
ID: https-everywhere@eff.org

Name: New Popup Dictionary
Type: extension
Version: 1.0.0
Enabled: true
ID: {0c6b918b-1081-4e8f-9833-ec90b6fd8e03}

Name: Privacy Badger
Type: extension
Version: 2021.11.23.1
Enabled: true
ID: jid1-MnnxcxisBPnSXQ@jetpack

Name: Rust Search Extension
Type: extension
Version: 1.4.0
Enabled: true
ID: {04188724-64d3-497b-a4fd-7caffe6eab29}

Name: SingleFile
Type: extension
Version: 1.19.22
Enabled: true
ID: {531906d3-e22f-4a6c-a102-8057b88a1a63}

Name: uBlock Origin
Type: extension
Version: 1.39.2
Enabled: true
ID: uBlock0@raymondhill.net

Name: Wikipedia (en)
Type: extension
Version: 1.1
Enabled: true
ID: wikipedia@search.mozilla.org

Name: Yandex
Type: extension
Version: 1.2
Enabled: true
ID: yandex@search.mozilla.org

Name: Zotero Connector
Type: extension
Version: 5.0.91
Enabled: true
ID: zotero@chnm.gmu.edu

Name: English (CA) Language Pack
Type: locale
Version: 95.0buildid20211129.150630
Enabled: true
ID: langpack-en-CA@firefox.mozilla.org

Name: English (GB) Language Pack
Type: locale
Version: 95.0buildid20211129.150630
Enabled: true
ID: langpack-en-GB@firefox.mozilla.org

Name: Russian (RU) Language Pack
Type: locale
Version: 95.0buildid20211129.150630
Enabled: true
ID: langpack-ru@firefox.mozilla.org

Name: enhanced-h264ify
Type: extension
Version: 2.1.0
Enabled: false
ID: {9a41dee2-b924-4161-a971-7fb35c053a4a}

Name: Image size fix for HiDPI
Type: extension
Version: 1.1.2
Enabled: false
ID: {823588ad-9abc-45fa-bc06-cdb1f034a54d}

Name: KeePassXC-Browser
Type: extension
Version: 1.7.10.1
Enabled: false
ID: keepassxc-browser@keepassxc.org

Name: Surfingkeys
Type: extension
Version: 0.9.74
Enabled: false
ID: {a8332c60-5b6d-41ee-bfc8-e9bb331d34ad}

Name: Video Speed Controller
Type: extension
Version: 0.6.3.3
Enabled: false
ID: {7be2ba16-0f1e-4d93-9ebc-5164397477a9}

Name: Vimium
Type: extension
Version: 1.67
Enabled: false
ID: {d7742d87-e61d-4b78-b8a1-b469842139fa}

Name: Wikiwand: Wikipedia Modernized
Type: extension
Version: 5.1.3
Enabled: false
ID: jid1-D7momAzRw417Ag@jetpack

Graphics
--------

Features
Compositing: WebRender
Asynchronous Pan/Zoom: wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled; smooth pinch-zoom enabled
WebGL 1 Driver WSI Info: EGL_VENDOR: Mesa Project EGL_VERSION: 1.5 EGL_EXTENSIONS: EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_swap_buffers_with_damage EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image_base EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_WL_bind_wayland_display EGL_WL_create_wayland_buffer_from_image EGL_EXTENSIONS(nullptr): EGL_EXT_platform_base EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_KHR_platform_x11 EGL_EXT_platform_x11 EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_MESA_platform_xcb EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless IsWebglOutOfProcessEnabled: 0
WebGL 1 Driver Renderer: AMD -- Radeon RX 580 Series (POLARIS10, DRM 3.42.0, 5.15.6-200.fc35.x86_64, LLVM 12.0.1)
WebGL 1 Driver Version: 4.6 (Compatibility Profile) Mesa 21.2.5 (git-d152999345)
WebGL 1 Driver 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_AMD_performance_monitor 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_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_texture_mirror_clamp_to_edge GL_ARB_texture_stencil8 GL_ARB_vertex_type_10f_11f_11f_rev 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_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_gpu_shader_int64 GL_ARB_parallel_shader_compile GL_ARB_shader_atomic_counter_ops GL_ARB_shader_ballot GL_ARB_shader_clock GL_ARB_shader_viewport_layer_array GL_EXT_shader_samples_identical GL_EXT_texture_sRGB_R8 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_AMD_framebuffer_multisample_advanced 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
WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_float_blend EXT_frag_depth EXT_shader_texture_lod EXT_sRGB EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic MOZ_debug OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context
WebGL 2 Driver WSI Info: EGL_VENDOR: Mesa Project EGL_VERSION: 1.5 EGL_EXTENSIONS: EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_EXT_buffer_age EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_EXT_swap_buffers_with_damage EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image_base EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_KHR_swap_buffers_with_damage EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_WL_bind_wayland_display EGL_WL_create_wayland_buffer_from_image EGL_EXTENSIONS(nullptr): EGL_EXT_platform_base EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_KHR_platform_x11 EGL_EXT_platform_x11 EGL_EXT_platform_device EGL_EXT_platform_wayland EGL_KHR_platform_wayland EGL_MESA_platform_xcb EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless IsWebglOutOfProcessEnabled: 0
WebGL 2 Driver Renderer: AMD -- Radeon RX 580 Series (POLARIS10, DRM 3.42.0, 5.15.6-200.fc35.x86_64, LLVM 12.0.1)
WebGL 2 Driver Version: 4.6 (Core Profile) Mesa 21.2.5 (git-d152999345)
WebGL 2 Driver Extensions: GL_AMD_conservative_depth GL_AMD_depth_clamp_separate GL_AMD_draw_buffers_blend GL_AMD_framebuffer_multisample_advanced GL_AMD_gpu_shader_int64 GL_AMD_multi_draw_indirect GL_AMD_performance_monitor GL_AMD_pinned_memory GL_AMD_query_buffer_object GL_AMD_seamless_cubemap_per_texture GL_AMD_shader_stencil_export GL_AMD_shader_trinary_minmax GL_AMD_texture_texture4 GL_AMD_vertex_shader_layer GL_AMD_vertex_shader_viewport_index GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_ARB_ES2_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_ES3_compatibility GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compressed_texture_pixel_storage GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_conservative_depth GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_elements_base_vertex GL_ARB_draw_indirect GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_shader GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_stencil_export GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map_array GL_ARB_texture_filter_anisotropic GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ATI_blend_equation_separate GL_ATI_meminfo GL_ATI_texture_float GL_ATI_texture_mirror_once GL_EXT_EGL_image_storage GL_EXT_EGL_sync GL_EXT_abgr GL_EXT_blend_equation_separate GL_EXT_demote_to_helper_invocation GL_EXT_depth_bounds_test GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_pixel_buffer_object GL_EXT_polygon_offset_clamp GL_EXT_provoking_vertex GL_EXT_semaphore GL_EXT_semaphore_fd GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shader_samples_identical GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_decode GL_EXT_texture_shadow_lod GL_EXT_texture_shared_exponent GL_EXT_texture_snorm GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_IBM_multimode_draw_arrays GL_INTEL_blackhole_render GL_KHR_blend_equation_advanced GL_KHR_context_flush_control GL_KHR_debug GL_KHR_no_error GL_KHR_parallel_shader_compile GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_sliced_3d GL_MESA_framebuffer_flip_y GL_MESA_pack_invert GL_MESA_shader_integer_functions GL_MESA_texture_signed_rgba GL_NVX_gpu_memory_info GL_NV_alpha_to_coverage_dither_control GL_NV_compute_shader_derivatives GL_NV_conditional_render GL_NV_copy_image GL_NV_depth_clamp GL_NV_packed_depth_stencil GL_NV_shader_atomic_int64 GL_NV_texture_barrier GL_NV_vdpau_interop GL_OES_EGL_image GL_S3_s3tc
WebGL 2 Extensions: EXT_color_buffer_float EXT_float_blend EXT_texture_compression_bptc EXT_texture_compression_rgtc EXT_texture_filter_anisotropic MOZ_debug OES_texture_float_linear WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context
Window Protocol: wayland
Desktop Environment: gnome
Target Frame Rate: 60
GPU #1
Active: Yes
Description: Radeon RX 580 Series (POLARIS10, DRM 3.42.0, 5.15.6-200.fc35.x86_64, LLVM 12.0.1)
Vendor ID: 0x1002
Device ID: 0x67df
Driver Vendor: mesa/radeonsi
Driver Version: 21.2.5.0
RAM: 0
GPU #2
Active: No
Vendor ID: 0x10de
Device ID: 0x13c2
Diagnostics
AzureCanvasBackend: skia
AzureContentBackend: skia
AzureFallbackCanvasBackend: skia
CMSOutputProfile: Empty profile data
Display0: 2560x1440
Display1: 1920x1080
DisplayCount: 2
Decision Log
HW_COMPOSITING:
available by default
OPENGL_COMPOSITING:
available by default
WEBRENDER:
available by default
WEBRENDER_QUALIFIED:
available by default
WEBRENDER_COMPOSITOR:
disabled by default: Disabled by default
blocklisted by env: Blocklisted by gfxInfo
WEBRENDER_PARTIAL:
available by default
WEBRENDER_SHADER_CACHE:
disabled by default: Disabled by default
WEBRENDER_OPTIMIZED_SHADERS:
available by default
WEBRENDER_ANGLE:
available by default
unavailable by env: OS not supported
WEBRENDER_DCOMP_PRESENT:
available by default
disabled by user: User disabled via pref
unavailable by env: Requires Windows 10 or later
unavailable by runtime: Requires ANGLE
WEBRENDER_SOFTWARE:
available by default
WEBGPU:
disabled by default: Disabled by default
blocked by runtime: WebGPU can only be enabled in nightly
X11_EGL:
available by default
DMABUF:
available by default




Media
-----

Audio Backend: pulse-rust
Max Channels: 2
Preferred Sample Rate: 48000
Roundtrip latency (standard deviation): 78.71ms (20.60)
Output Devices
Name: Group
GM204 High Definition Audio Controller Digital Stereo (HDMI):
Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] Digital Stereo (HDMI):
Starship/Matisse HD Audio Controller Analog Stereo:
Input Devices
Name: Group
C922 Pro Stream Webcam Analog Stereo:
Monitor of GM204 High Definition Audio Controller Digital Stereo (HDMI):
Monitor of Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] Digital Stereo (HDMI):
Monitor of Starship/Matisse HD Audio Controller Analog Stereo:
Starship/Matisse HD Audio Controller Analog Stereo:

Enumerate database

Environment Variables
---------------------

MOZ_ENABLE_WAYLAND: 1
MOZ_ASSUME_USER_NS: 0
MOZ_CRASHREPORTER_EVENTS_DIRECTORY: /var/home/yalter/.mozilla/firefox/qacr27eg.default-release/crashes/events
MOZ_CRASHREPORTER_RESTART_ARG_0: /app/lib/firefox/firefox
MOZ_CRASHREPORTER_RESTART_ARG_1:
MOZ_CRASHREPORTER_DATA_DIRECTORY: /var/home/yalter/.mozilla/firefox/Crash Reports
MOZ_CRASHREPORTER_PING_DIRECTORY: /var/home/yalter/.mozilla/firefox/Pending Pings
MOZ_CRASHREPORTER_STRINGS_OVERRIDE: /app/lib/firefox/browser/crashreporter-override.ini
MOZ_LAUNCHED_CHILD:
MOZ_APP_SILENT_START:
XRE_PROFILE_PATH:
XRE_PROFILE_LOCAL_PATH:
XRE_START_OFFLINE:
XRE_BINARY_PATH:
XRE_RESTARTED_BY_PROFILE_MANAGER:

Experimental Features
---------------------

about:home startup cache (browser.startup.homepage.abouthome_cache.enabled): false
Cookies: SameSite=Lax by default (network.cookie.sameSite.laxByDefault): false
Cookies: SameSite=None requires secure attribute (network.cookie.sameSite.noneRequiresSecure): false
Cookies: Schemeful SameSite (network.cookie.sameSite.schemeful): false
CSS: Cascade Layers (layout.css.cascade-layers.enabled): false
CSS: Constructable Stylesheets (layout.css.constructable-stylesheets.enabled): false
CSS: Masonry Layout (layout.css.grid-template-masonry-value.enabled): false
Developer Tools: Compatibility Panel (devtools.inspector.compatibility.enabled): false
Developer Tools: Execution Context Selector (devtools.webconsole.input.context): false
Developer Tools: Service Worker debugging (devtools.debugger.features.windowless-service-workers): false
Fission (Site Isolation) (fission.autostart): true
Media: JPEG XL (image.jxl.enabled): false
Multiple Picture-in-Picture Support (media.videocontrols.picture-in-picture.allow-multiple): true
Address Bar: show results during IME composition (browser.urlbar.keepPanelOpenDuringImeComposition): false
Web API: WebGPU (dom.webgpu.enabled): false
WebRTC Global Mute Toggles (privacy.webrtc.globalMuteToggles): false
Win32k Lockdown (security.sandbox.content.win32k-disable): false

Remote Experiments
------------------

Important Modified Preferences
------------------------------

accessibility.typeaheadfind.flashBar: 0
browser.contentblocking.category: custom
browser.search.region: RU
browser.sessionstore.upgradeBackup.latestBuildID: 20211129150630
browser.startup.homepage_override.buildID: 20211129150630
browser.startup.homepage_override.mstone: 95.0
browser.startup.page: 3
browser.urlbar.placeholderName: DuckDuckGo
browser.urlbar.placeholderName.private: DuckDuckGo
browser.urlbar.quicksuggest.migrationVersion: 1
browser.urlbar.quicksuggest.scenario: history
browser.urlbar.resultGroups: {"children":[{"maxResultCount":1,"children":[{"group":"heuristicTest"},{"group":"heuristicExtension"},{"group":"heuristi
browser.urlbar.suggest.searches: false
browser.urlbar.tipShownCount.searchTip_onboard: 4
doh-rollout.balrog-migration-done: true
doh-rollout.doneFirstRun: true
doh-rollout.home-region: RU
dom.push.userAgentID: c372bbf6e9b149bb8d68b2253b6a3ecc
extensions.lastAppVersion: 95.0
font.internaluseonly.changed: true
general.autoScroll: true
idle.lastDailyNotification: 1638883953
media.gmp-gmpopenh264.abi: x86_64-gcc3
media.gmp-gmpopenh264.lastUpdate: 1624545564
media.gmp-gmpopenh264.version: 1.8.1.1
media.gmp-manager.buildID: 20211129150630
media.gmp-manager.lastCheck: 1638936896
media.gmp.storage.version.observed: 1
media.videocontrols.picture-in-picture.video-toggle.has-used: true
network.dns.disablePrefetch: true
network.http.speculative-parallel-limit: 0
network.predictor.enabled: false
network.prefetch-next: false
network.trr.blocklist_cleanup_done: true
places.database.lastMaintenance: 1638883954
privacy.donottrackheader.enabled: true
privacy.purge_trackers.date_in_cookie_database: 0
privacy.purge_trackers.last_purge: 1638883953943
privacy.sanitize.pending: [{"id":"newtab-container","itemsToClear":[],"options":{}}]
privacy.trackingprotection.enabled: true
privacy.userContext.enabled: true
privacy.userContext.extension: @testpilot-containers
privacy.userContext.ui.enabled: true
security.remote_settings.crlite_filters.checked: 1638889597
security.remote_settings.intermediates.checked: 1638889597
security.sandbox.content.tempDirSuffix: f3e5e728-51df-4805-a713-9c53f0520dff
services.sync.declinedEngines:
services.sync.engine.creditcards: true
services.sync.engine.prefs.modified: false
services.sync.lastPing: 1638859845
services.sync.lastSync: Wed Dec 08 2021 07:26:44 GMT+0300 (Moscow Standard Time)
signon.rememberSignons: false
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1637669751

Important Locked Preferences
----------------------------

fission.autostart.session: true

Places Database
---------------

Accessibility
-------------

Activated: false
Prevent Accessibility: 0

Library Versions
----------------

NSPR
Expected minimum version: 4.32
Version in use: 4.32

NSS
Expected minimum version: 3.72
Version in use: 3.72

NSSSMIME
Expected minimum version: 3.72
Version in use: 3.72

NSSSSL
Expected minimum version: 3.72
Version in use: 3.72

NSSUTIL
Expected minimum version: 3.72
Version in use: 3.72

Sandbox
-------

Seccomp-BPF (System Call Filtering): true
Seccomp Thread Synchronization: true
User Namespaces for privileged processes: true
User Namespaces: false
Content Process Sandboxing: true
Media Plugin Sandboxing: true
Content Process Sandbox Level: 4
Effective Content Process Sandbox Level: 4
Win32k Lockdown State for Content Process: Win32k Lockdown disabled -- Operating system not supported

Rejected System Calls
---------------------

Startup Cache
-------------

Disk Cache Path: /var/home/yalter/.var/app/org.mozilla.firefox/cache/mozilla/firefox/qacr27eg.default-release/startupCache/startupCache.8.little
Ignore Disk Cache: false
Found Disk Cache on Init: true
Wrote to Disk Cache: true

Internationalization & Localization
-----------------------------------

Application Settings
Requested Locales: ["en-US"]
Available Locales: ["en-US","en-GB","en-CA","ru"]
App Locales: ["en-US","en-GB","en-CA"]
Regional Preferences: ["en-US","en-GB","en-CA"]
Default Locale: "en-US"
Operating System
System Locales: ["en-US"]
Regional Preferences: ["ru-RU"]

Remote Debugging (Chromium Protocol)
------------------------------------

Accepting Connections: false
URL:

Printing
--------

Modified print settings
-----------------------

print_printer: Mozilla Save to PDF
print.printer_deskjet-6122.print_bgcolor: false
print.printer_deskjet-6122.print_bgimages: false
print.printer_deskjet-6122.print_duplex: 0
print.printer_deskjet-6122.print_edge_bottom: 0
print.printer_deskjet-6122.print_edge_left: 0
print.printer_deskjet-6122.print_edge_right: 0
print.printer_deskjet-6122.print_edge_top: 0
print.printer_deskjet-6122.print_footercenter:
print.printer_deskjet-6122.print_footerleft: &PT
print.printer_deskjet-6122.print_footerright: &D
print.printer_deskjet-6122.print_headercenter:
print.printer_deskjet-6122.print_headerleft: &T
print.printer_deskjet-6122.print_headerright: &U
print.printer_deskjet-6122.print_in_color: true
print.printer_deskjet-6122.print_margin_bottom: 0.5
print.printer_deskjet-6122.print_margin_left: 0.5
print.printer_deskjet-6122.print_margin_right: 0.5
print.printer_deskjet-6122.print_margin_top: 0.5
print.printer_deskjet-6122.print_orientation: 0
print.printer_deskjet-6122.print_page_delay: 50
print.printer_deskjet-6122.print_paper_height: 11
print.printer_deskjet-6122.print_paper_id: na_letter_8.5x11in
print.printer_deskjet-6122.print_paper_size_unit: 0
print.printer_deskjet-6122.print_paper_width: 8.5
print.printer_deskjet-6122.print_resolution: 0
print.printer_deskjet-6122.print_reversed: false
print.printer_deskjet-6122.print_scaling: 1
print.printer_deskjet-6122.print_shrink_to_fit: true
print.printer_deskjet-6122.print_to_file: true
print.printer_deskjet-6122.print_unwriteable_margin_bottom: 50
print.printer_deskjet-6122.print_unwriteable_margin_left: 25
print.printer_deskjet-6122.print_unwriteable_margin_right: 25
print.printer_deskjet-6122.print_unwriteable_margin_top: 13
print.printer_Mozilla_Save_to_PDF.print_bgcolor: false
print.printer_Mozilla_Save_to_PDF.print_bgimages: false
print.printer_Mozilla_Save_to_PDF.print_duplex: 0
print.printer_Mozilla_Save_to_PDF.print_edge_bottom: 0
print.printer_Mozilla_Save_to_PDF.print_edge_left: 0
print.printer_Mozilla_Save_to_PDF.print_edge_right: 0
print.printer_Mozilla_Save_to_PDF.print_edge_top: 0
print.printer_Mozilla_Save_to_PDF.print_footercenter:
print.printer_Mozilla_Save_to_PDF.print_footerleft: &PT
print.printer_Mozilla_Save_to_PDF.print_footerright: &D
print.printer_Mozilla_Save_to_PDF.print_headercenter:
print.printer_Mozilla_Save_to_PDF.print_headerleft: &T
print.printer_Mozilla_Save_to_PDF.print_headerright: &U
print.printer_Mozilla_Save_to_PDF.print_in_color: true
print.printer_Mozilla_Save_to_PDF.print_margin_bottom: 0.5
print.printer_Mozilla_Save_to_PDF.print_margin_left: 0.5
print.printer_Mozilla_Save_to_PDF.print_margin_right: 0.5
print.printer_Mozilla_Save_to_PDF.print_margin_top: 0.5
print.printer_Mozilla_Save_to_PDF.print_orientation: 0
print.printer_Mozilla_Save_to_PDF.print_page_delay: 50
print.printer_Mozilla_Save_to_PDF.print_paper_height: 11.6929
print.printer_Mozilla_Save_to_PDF.print_paper_id: iso_a4
print.printer_Mozilla_Save_to_PDF.print_paper_size_unit: 0
print.printer_Mozilla_Save_to_PDF.print_paper_width: 8.26772
print.printer_Mozilla_Save_to_PDF.print_reversed: false
print.printer_Mozilla_Save_to_PDF.print_scaling: 1
print.printer_Mozilla_Save_to_PDF.print_shrink_to_fit: true
print.printer_Mozilla_Save_to_PDF.print_to_file: true
print.printer_Mozilla_Save_to_PDF.print_unwriteable_margin_bottom: 0
print.printer_Mozilla_Save_to_PDF.print_unwriteable_margin_left: 0
print.printer_Mozilla_Save_to_PDF.print_unwriteable_margin_right: 0
print.printer_Mozilla_Save_to_PDF.print_unwriteable_margin_top: 0

Expected results:

Firefox follows the monitor refresh rate on Wayland without any FPS caps, just like it did before.

The Bugbug bot thinks this bug should belong to the 'Core::Widget: Gtk' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Component: Untriaged → Widget: Gtk
Product: Firefox → Core

Also vsynctester.com shows this mess of frame timings when the screen is set to 144 Hz. It works fine when the screen is set to 120 Hz. Maybe it'll help diagnosing where the issue lies.

Hm, this is strange - I'm not aware of any changes in that area. There was bug 1640779, but that shouldn't have any impact on Wayland.

If you have time, would it be possible for you to use mozregression to find the offending commit?

Blocks: wayland
See Also: → 1640779
Priority: -- → P3
13:07.87 INFO: Narrowed integration regression window from [334e3d59, 77e655ba] (3 builds) to [334e3d59, f632271e] (2 builds) (~1 steps left)
13:07.87 INFO: No more integration revisions, bisection finished.
13:07.87 INFO: Last good revision: 334e3d59d932dd2850dec7c582f32f49b504e450
13:07.87 INFO: First bad revision: f632271e9d62ad6b7e90acd52e77d3e02a66980e
13:07.87 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=334e3d59d932dd2850dec7c582f32f49b504e450&tochange=f632271e9d62ad6b7e90acd52e77d3e02a66980e

Thanks. Can you try latest nightly if it's fixed there?
https://fedoraproject.org/wiki/How_to_debug_Firefox_problems#Testing_Mozilla_binaries
Thanks.

Flags: needinfo?(yalterz)
Regressed by: 1737068
Has Regression Range: --- → yes

97.0a1 (2021-12-07): the first time I ran it it was locked to 60 FPS but subsequent runs it seems to behave as it should, no issue.

Flags: needinfo?(yalterz)

Thanks for testing. So it's fixed in latest nightly then.

Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED

Hm, shouldn't we check what fixed it? And potentially backport the fix?

A backport would be nice. It's a bit of a deal breaker here, I'm considering downgrading to 94 or something for the time being.

(In reply to Ivan Molodetskikh from comment #10)

A backport would be nice. It's a bit of a deal breaker here, I'm considering downgrading to 94 or something for the time being.

Can you find the commit that fixes things with mozregression? :) (p.s.: sorry, don't have a 144Hz screen yet)

Set release status flags based on info from the regressing bug 1737068

Can you find the commit that fixes things with mozregression?

A bit of a problem here. First, mozregression, at least in --find-fix mode, seems to be converting release numbers to dates, which pulls the build for the next version (so 95 pulls 96.0a)—not sure if that is intended.

Second, on the profile that mozregression runs even 2021-12-07 gives the 120 FPS lock. When creating a new profile from every instance run by mozregression and switching to it twice, neither 94 (95.0a), nor 95 (96.0a), nor 2021-12-07 exhibit the issue. Nevertheless, when testing tarballs for stable 95 and 2021-12-07 outside of mozregression, stable 95 exhibits the issue even when making a new profile, while 2021-12-07 is fine on a new profile as I mentioned above.

I'm also affected with this problem since I updated to Firefox 95 today.

I have a 180hz monitor and Firefox 94 properly rendered at 180 fps with buttery smooth perfection (with layout.frame_rate set to the default of -1), as tested on sites such as https://www.testufo.com/.

But now, after updating to 95, it is only rendering at 120 fps with terrible results at https://www.vsynctester.com
If I try to force 180 fps in layout.frame_rate it's even worse, as I get stutters.

What can I do to get the old behavior back until this is fixed?
I hope this gets a backport, taking into consideration it is a regression.

(In reply to Ivan Molodetskikh from comment #13)

Can you find the commit that fixes things with mozregression?

A bit of a problem here. First, mozregression, at least in --find-fix mode, seems to be converting release numbers to dates, which pulls the build for the next version (so 95 pulls 96.0a)—not sure if that is intended.

Hm, I guess you can simply use the --good and --bad parameters, no?

Second, on the profile that mozregression runs even 2021-12-07 gives the 120 FPS lock. When creating a new profile from every instance run by mozregression and switching to it twice, neither 94 (95.0a), nor 95 (96.0a), nor 2021-12-07 exhibit the issue. Nevertheless, when testing tarballs for stable 95 and 2021-12-07 outside of mozregression, stable 95 exhibits the issue even when making a new profile, while 2021-12-07 is fine on a new profile as I mentioned above.

This is really odd. I also really don't understand where the 120Hz are supposed to come from.

Well, here's one difference I just noticed between 120 FPS locked and 144 FPS windows of the same --bad 95 build: the 144 FPS one has fission windows 1 Enabled by experiment, while the 120 FPS locked one has 0 disabled.

Might be a false alarm. 2012-12-07 from the tarball does 144 FPS even with fission disabled.

--find-fix is just good and bad swapped.

(In reply to Ivan Molodetskikh from comment #5)
Which command did you exactly run to find this regression range?

I assume it would have to be
$ MOZ_ENABLE_WAYLAND=1 mozregression --good 94 --bad 95 -a https://www.vsynctester.com/
or
$ MOZ_ENABLE_WAYLAND=1 mozregression --good 94 --bad 95 --pref fission.autostart:false -a https://www.vsynctester.com/
or
$ MOZ_ENABLE_WAYLAND=1 mozregression --good 94 --bad 95 --pref fission.autostart:true -a https://www.vsynctester.com/

(In reply to Ivan Molodetskikh from comment #13)

(so 95 pulls 96.0a)—not sure if that is intended.

It's intended. 95 was complete with the first Nightly build of 96.

Do you have the proprietary Nvidia driver installed?

Which command did you exactly run to find this regression range?

MOZ_ENABLE_WAYLAND=1 mozregression --good 94 --bad 95, then open testufo.com and planet.mozilla.org by hand to check FPS and scrolling.

Do you have the proprietary Nvidia driver installed?

Yes, for the secondary NVIDIA GTX 970. My main GPU is AMD RX 580, that's where the displays are plugged in.

Happens to me on an AMD Radeon RX 6800 using the open-source drivers.

My profile has fission enabled.
Also tested on a clean new profile (where fission was disabled by default) and the problem still occurs.

Is scrolling in about:support equally stuttery like scrolling websites?

Also: does disabling Wayland help (Xwayland should now get the xrandr-based software sync, which should detect the 144Hz properly)?

Is scrolling in about:support equally stuttery like scrolling websites?

Yeah, exactly the same.

Also: does disabling Wayland help (Xwayland should now get the xrandr-based software sync, which should detect the 144Hz properly)?

Seems to work fine on the 95 tarball indeed.

(In reply to Robert Mader [:rmader] from comment #22)

Is scrolling in about:support equally stuttery like scrolling websites?

Yes, the same.

Perhaps it was a bit premature to mark 97 as fixed, since as I wrote above, testing it through mozregression on its default profile does show the issue, just like 95 and 96.

Status: RESOLVED → REOPENED
Ever confirmed: true
Resolution: FIXED → ---
See Also: → 1745098
Status: REOPENED → UNCONFIRMED
Ever confirmed: false
See Also: → 1717555
OS: Unspecified → Linux
Hardware: Unspecified → x86_64
Summary: Firefox 95 locked to 120 fps on Wayland, unsmooth scrolling → WR/Gnome Wayland/AMD RX 580 (+unused NVIDIA GTX 970 with its driver installed): Firefox 95 locked to 120 fps, unsmooth scrolling

Seeing this as well, except I'm locked to 60 FPS on a 144hz display under Wayland (Plasma 5.23.4). Switching over to Xwayland I get 144 FPS.

Firefox 94 was fine, only have the issue after upgrading to 95.

Also ran mozregression --good 94 --bad 95 and got the same regression window:

 4:01.33 INFO: Narrowed integration regression window from [334e3d59, 77e655ba] (3 builds) to [334e3d59, f632271e] (2 builds) (~1 steps left)
 4:01.33 INFO: No more integration revisions, bisection finished.
 4:01.33 INFO: Last good revision: 334e3d59d932dd2850dec7c582f32f49b504e450
 4:01.33 INFO: First bad revision: f632271e9d62ad6b7e90acd52e77d3e02a66980e
 4:01.33 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=334e3d59d932dd2850dec7c582f32f49b504e450&tochange=f632271e9d62ad6b7e90acd52e77d3e02a66980e

Why was the bug titled changed to mention specifically the AMD RX 580 and Gnome?

I'm also affected by this bug on KDE Plasma on Wayland on an AMD Radeon RX 6800 (I'm using the open-source drivers).

(In reply to Jon Voss from comment #27)
(In reply to nf.pereira from comment #29)

Does the slowdown still occur with https://nightly.mozilla.org?
Start it with env var, for example: $ MOZ_ENABLE_WAYLAND=1 ~/Downloads/firefox/firefox

Can the problem be fixed by setting gfx.webrender.allow-partial-present-buffer-age to false, gfx.webrender.max-partial-present-rects to 0 on about:config and restarting Nightly?

(In reply to Jon Voss from comment #27)
Which GPU do you have?

Summary: WR/Gnome Wayland/AMD RX 580 (+unused NVIDIA GTX 970 with its driver installed): Firefox 95 locked to 120 fps, unsmooth scrolling → WR/Gnome+KDE Wayland/AMD: Firefox 95 locked to 120 fps, unsmooth scrolling

Does the slowdown still occur with https://nightly.mozilla.org?
Start it with env var, for example: $ MOZ_ENABLE_WAYLAND=1 ~/Downloads/firefox/firefox

Still occurs with the latest nightly build.
I run Arch, so MOZ_ENABLE_WAYLAND=1 is set globally through an export in /etc/profile.d

From about:support:

Window Protocol	wayland
Desktop Environment	kde
Target Frame Rate	60

I notice it shows Target Frame Rate at 60 regardless of whether FF is actually running at 144 FPS (like under X)

Can the problem be fixed by setting gfx.webrender.allow-partial-present-buffer-age to false, gfx.webrender.max-partial-present-rects to 0 on about:config and restarting Nightly?

Yes! Setting those two options in nightly resolves the issue.

Which GPU do you have?

Radeon 6700XT - mesa 21.3.1

(In reply to Ivan Molodetskikh from comment #0)
(In reply to nf.pereira from comment #29)
Can you confirm that setting gfx.webrender.allow-partial-present-buffer-age to false, gfx.webrender.max-partial-present-rects to 0 on about:config and restarting Nightly fixes the problem permanently? Please test it for a few hours.

(Could be related: EGL/X11/Nvidia suffers from a partial present glitch+slowdown after suspend&resume: bug 1743051)

MOZ_ENABLE_WAYLAND=1 mozregression --launch 2021-12-14 --pref gfx.webrender.allow-partial-present-buffer-age:false gfx.webrender.max-partial-present-rects:0

still reproduces the issue for me. The prefs are indeed changed in about:config that way. I can't test on a tarball nightly properly because of the weird behavior that I mentioned above.

(In reply to Darkspirit from comment #30)

Does the slowdown still occur with https://nightly.mozilla.org?
Start it with env var, for example: $ MOZ_ENABLE_WAYLAND=1 ~/Downloads/firefox/firefox

Can the problem be fixed by setting gfx.webrender.allow-partial-present-buffer-age to false, gfx.webrender.max-partial-present-rects to 0 on about:config and restarting Nightly?

While testing this I found something really strange about nightly:

When I start nightly with a brand new profile, at first run it only detects 120 fps (should be 180 on my system), but if I close nightly and reopen it, it now detects 180! This is without changing absolutely no setting at all.
I've reproduced this a second time by deleting the profile and recreating it.
What could be causing this? Shouldn't the first-run behavior be exactly the same as any other run?

Tested the same thing on FF stable with a new profile but the problem was still present after multiple FF startups.

When running at 180 fps it seems the issue is fixed in nightly, despite still getting some stutters here and there on TestUFO and VsyncTester. It's hard to say if it was smoother in FF 94 or not, but it seems like it was smoother before.

(In reply to Jon Voss from comment #31)

Yes! Setting those two options in nightly resolves the issue.

Can you please test nightly again like I described above without changing any settings and see if you get the same behavior as me?
You probably fixed it by restarting nightly and not by changing the settings.

(In reply to nf.pereira from comment #34)

(In reply to Darkspirit from comment #30)
(In reply to Jon Voss from comment #31)

Yes! Setting those two options in nightly resolves the issue.

Can you please test nightly again like I described above without changing any settings and see if you get the same behavior as me?
You probably fixed it by restarting nightly and not by changing the settings.

Yep, I just tested again using a fresh profile without those two gfx.webrender settings set.
The first run of nightly runs at 60fps, subsequent runs at 144fps. It's odd that it takes a restart to pick it up, but at least it seems to be working?

I also notice some stutters here and there. 94 seemed to be smoother but that could be anecdotal.

Great, that confirms that gfx.webrender.allow-partial-present-buffer-age and gfx.webrender.max-partial-present-rects don't do anything to this bug.
Now we need to know what change fixed it and why it only works correctly on the 2nd run of the browser.

Also, it's necessary to check if the smoothness was downgraded from 94 onwards.
I will try to compare the smoothness of 94 VS nightly more thoroughly later on VsyncTester.

I think there's a bug in the window config or some timing bug or so.

Please launch nightly with env variable MOZ_LOG="Widget:5" - it should produce the log from window config. Please do it twice - one for the start with 60fps and then for 144fps. Try to keep the log as small as possible - just open a ff window (set https://testufo.com/ or something as homepage to see the sync rate) and close it.

Please attach the two logs here.
Thanks.

(In reply to Martin Stránský [:stransky] (ni? me) from comment #37)

I think there's a bug in the window config or some timing bug or so.

Please launch nightly with env variable MOZ_LOG="Widget:5" - it should produce the log from window config. Please do it twice - one for the start with 60fps and then for 144fps. Try to keep the log as small as possible - just open a ff window (set https://testufo.com/ or something as homepage to see the sync rate) and close it.

Please attach the two logs here.
Thanks.

Logs attached with the parameter set.

Please ty to run this try locally to see if 144Hz is picked for first time:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=b689a5e389ea0a7048e0ded3119baa5f2b96ff20

When the build is done, select [B] by Linux x64 opt, go to 'Artifacts and Debugging Tools' below, download arget.tar.bz2 file. This is Firefox binary produced by this run, so unpack it and try it.

Thanks.

or run
$ MOZ_ENABLE_WAYLAND=1 mozregression --repo try --launch b689a5e389ea0a7048e0ded3119baa5f2b96ff20 -a https://testufo.com
once the build is ready

MOZ_ENABLE_WAYLAND=1 mozregression --repo try --launch b689a5e389ea0a7048e0ded3119baa5f2b96ff20 -a https://testufo.com

Gives me 60 FPS on the initial launch, then once I click the address bar and press Enter gives me 120 FPS on the reload. The scrolling is janky. Reloading with just F5 keeps 60 FPS.

Extracted that build and ran on a fresh profile:
./firefox -P nightly http://www.vsynctester.com

I got around 100-110fps on the initial launch. Reloading the page, opening a new tab, or clicking the address bar and pressing Enter to reload the page did not correct. Deleted the profile and tried again, same thing. Also tried about:support and some other pages on new tabs with no difference.

On subsequent launches it runs at 144fps.

We do a window reconfiguration when a new window is opened. If there's a bug in window init it may help to open a new window and it may use updated fps. But this bug is a complete mystery to me :)

A new window with Ctrl-N does 120 FPS on testufo while the original window stays at 60.

False alarm. Moving testufo.com tab to new window preserves its 60 FPS. My result just above was because after Ctrl-N I clicked on the address bar, typed testufo.com and pressed Enter, which as we've established converts it to 120 FPS.

Thanks. I'll create a try with Vsync log to find out what's going on.

There's a try with vsync logging:
https://treeherder.mozilla.org/jobs?repo=try&revision=177d76ba59e45537b8e3e16193bf1390feae17a6

Once it's build please run as:

MOZ_LOG="WidgetVsync:5" MOZ_ENABLE_WAYLAND=1 mozregression --repo try --launch 177d76ba59e45537b8e3e16193bf1390feae17a6 -a https://testufo.com

and attach the logs here. Please open only one window to get logs for first 60fps run and then for 120fps run.
Thanks.

Okay, another try:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=21e0b9dfd2a8e8ee7d29c81943738f54e8cf8bbf

MOZ_LOG="WidgetVsync:5" MOZ_ENABLE_WAYLAND=1 mozregression --repo try --launch 21e0b9dfd2a8e8ee7d29c81943738f54e8cf8bbf -a https://testufo.com

Thanks.

(In reply to Ivan Molodetskikh from comment #47)

False alarm. Moving testufo.com tab to new window preserves its 60 FPS. My result just above was because after Ctrl-N I clicked on the address bar, typed testufo.com and pressed Enter, which as we've established converts it to 120 FPS.

Hm, this sounds like an issue with the currently Wayland-only per-window frame callback vsync source from bug 1645528. Moving a tab to another window should make it reconnect to the vsync source of that window, but maybe that doesn't happen if it was connected to the software-based 60Hz timer previously.

To add to comment 53, we probably want to look into what happens in https://searchfox.org/mozilla-central/source/dom/ipc/VsyncParent.cpp#23-28 (will do so on the weekend if Martin doesn't get to it earlier).

Thanks for the logs. Ivan, can you reproduce a scenario when 120 FPS is picked up after second Firefox start?

Flags: needinfo?(yalterz)

Robert, as for the logs, it looks like fps is calculated properly BUT the sync is not propagated to correct window for rendering.

Ivan, please try to get vsync+widget code log by:

MOZ_LOG="Widget:5, WidgetVsync:5" MOZ_ENABLE_WAYLAND=1 mozregression --repo try --launch 21e0b9dfd2a8e8ee7d29c81943738f54e8cf8bbf -a https://testufo.com

Just open the window, keep it for 10 sec and close it.
Thanks.

Robert, how is Vsync source paired by nsWindow objects ? Does every nsWindow has it's own VSync or is the VSync object shared?

Thanks for the logs. Ivan, can you reproduce a scenario when 120 FPS is picked up after second Firefox start?

Running mozregression multiple times always gives me the same behavior (60 FPS first). When I tested nightly builds a few days ago I got 144 FPS on the second start, but I don't think that was indicative of the problem being fixed.

Flags: needinfo?(yalterz)

I'll grab the nightly build and get some logs for the 2nd launch that has the correct frame rate.

Log file attached for 2nd launch using the above build with WidgetVsync:5

Realized I didn't have both Widget5 and WidgetVsync5 enabled. This log file has both.

(In reply to Martin Stránský [:stransky] (ni? me) from comment #60)

Robert, how is Vsync source paired by nsWindow objects ? Does every nsWindow has it's own VSync or is the VSync object shared?

IIRC on Wayland each nsWindow has one VsyncParent while on all other platforms there's only one global VsyncParent. Will look into it today!

For those running on Gnome, there's an additional issue which in some cases may play into this as well, see https://gitlab.gnome.org/GNOME/mutter/-/issues/1971

Attachment #9255918 - Attachment mime type: text/x-log → text/plain

Can somebody try the following build with the patch from comment 67? https://treeherder.mozilla.org/jobs?repo=try&revision=a3d81ee59dbfca8aa5d247e9398e58059e2c4381

Edit: for me that build did pick up the right refresh rate on first run.

MOZ_ENABLE_WAYLAND=1 mozregression --repo try --launch a3d81ee59dbfca8aa5d247e9398e58059e2c4381 -a https://testufo.com

Seems like the issue is completely fixed with this!

Robert, how VsyncParent depends on WaylandVsyncSource ? Can we throw an error when VsyncParent is created without WaylandVsyncSource?

(In reply to Martin Stránský [:stransky] (ni? me) from comment #70)

Robert, how VsyncParent depends on WaylandVsyncSource ? Can we throw an error when VsyncParent is created without WaylandVsyncSource?

Unfortunately VsyncParent lives in heavily shared code - will try to clean up the patch above and see if we can throw an error somehow (or just guarantee that nsWindow::GetVsyncSource() never returns nullptr when it shouldn't).

And where the connection happens?

Assignee: nobody → robert.mader
Attachment #9256101 - Attachment description: WIP: Bug 1744896 - WIP: Ensure WaylandVsyncSource is created before VsyncParents need it → Bug 1744896 - Ensure WaylandVsyncSource is created when needed, r=stransky

(In reply to Martin Stránský [:stransky] (ni? me) from comment #72)

And where the connection happens?

I'd have to dive into bug 1645528 again to remember all the details but IIRC once the content process creates a BrowserChild, a BrowserParent is created, which again, at least on Wayland, has a VsyncParent (the BrowserChild has a VsyncChild). That VsyncParent calls GetVsyncSource() on its Widget - in the case here the nsWindow.
Normally, if a tab gets moved to another window, the VsyncSource of the VsyncParent should get updated, but maybe that's not the case if the global software vsync source is selected.
In any case, what we see here is a race between a VsyncParent and the WaylandVsyncSource being created.

See Also: → 1645528

(In reply to Robert Mader [:rmader] from comment #68)

Can somebody try the following build with the patch from comment 67? https://treeherder.mozilla.org/jobs?repo=try&revision=a3d81ee59dbfca8aa5d247e9398e58059e2c4381

Edit: for me that build did pick up the right refresh rate on first run.

Yes! This fixes it for me.
It works on the first and subsequent runs. Moving the window between a 180hz monitor and a 60hz monitor is also detecting the FPS change perfectly.

Is a backport to 95 or 96 planned? Currently it's a pretty bad experience for anyone using Firefox on Wayland.

(In reply to nf.pereira from comment #74)

Yes! This fixes it for me.

Great, thanks for confirming!

Is a backport to 95 or 96 planned? Currently it's a pretty bad experience for anyone using Firefox on Wayland.

Assuming the patch lands soon: definitely 96. 95 depends on whether there will be a point release. In any case it should be easy to backport if distro maintainers want to.

Oh that's great! I was afraid it was only going to drop in 97.

Attachment #9256101 - Attachment description: Bug 1744896 - Ensure WaylandVsyncSource is created when needed, r=stransky → Bug 1744896 - Create WaylandVsyncSource on window creation, r=stransky

(In reply to Robert Mader [:rmader] from comment #73)

In any case, what we see here is a race between a VsyncParent and the WaylandVsyncSource being created.

So can we put an assertion there to make sure the things are correct? Because in this patch we just moved WaylandVsyncSource creation to a different place but the race can still happen.

Flags: needinfo?(robert.mader)
Pushed by robert.mader@posteo.de: https://hg.mozilla.org/integration/autoland/rev/81d5e47ce2e0 Create WaylandVsyncSource on window creation, r=stransky

(In reply to Martin Stránský [:stransky] (ni? me) from comment #78)

(In reply to Robert Mader [:rmader] from comment #73)

In any case, what we see here is a race between a VsyncParent and the WaylandVsyncSource being created.

So can we put an assertion there to make sure the things are correct? Because in this patch we just moved WaylandVsyncSource creation to a different place but the race can still happen.

I don't think the race can still happen - IIUC the BrowserParent is only created after nsWindow::Create() was called. If that's not the case, we'd need to rework much bigger parts of the code. Regarding the assertion: the only place where we know if we actually should get a WaylandVsyncSource is in nsWindow - can't check that in BrowserParent or VsyncParent.

Flags: needinfo?(robert.mader)

Did we ever find out where the 120hz value was coming from? None of my screens is set to 120hz.

(In reply to nf.pereira from comment #81)

Did we ever find out where the 120hz value was coming from? None of my screens is set to 120hz.

Uh, it might be 2*60Hz. In that case it should be still be reproducible with the patch landed and widget.wayland.vsync.enabled:false.

https://searchfox.org/mozilla-central/source/dom/ipc/VsyncParent.cpp#23-37 looks like it could mess up if called with aVsyncSource == nullptr multiple times - which AFAIK can only happen on Wayland (https://searchfox.org/mozilla-central/source/dom/ipc/BrowserParent.cpp#1436-1438).

Keywords: leave-open

So when triggering the race (i.e. without the patch from above and after trying a couple of times) I can manage to get Firefox into all kinds of odd vsync states. In a setup with one 60Hz and on 120Hz display, testufo.com (less heavy than vsynctester) sometimes gives 90FPS, sometimes ~108, sometimes 60 (on the 120Hz display).
Trying with a build with the patch applied (i.e. ~nightly from tomorrow), I reliably get the right refresh rates*. Also setting widget.wayland.vsync.enabled:false does not trigger the bug again, but instead gives me solid 60FPS.
So without digging deeper I assume what we see here something that can only happen in a mixed state where some components use WaylandVsyncSource and others SoftwareVsyncSource. And the patch should avoid that.
I also looked into VsyncParent again but couldn't find anything really wrong. Thus declaring this fixed once the patch lands.

*: note: this is with https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2169 applied to not get wrong frame callbacks from Mutter.

Keywords: leave-open
Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 97 Branch

Comment on attachment 9256101 [details]
Bug 1744896 - Create WaylandVsyncSource on window creation, r=stransky

Beta/Release Uplift Approval Request

  • User impact if declined: Native Wayland backend users may get wrong refresh rates and stuttering, in some cases strongly affecting the user experience.
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): The code change is quite simple and well understood.
    A previous version of the patch has already been tested by affected users and the final one by me. Once the patch lands in nightly it should be confirmed again - opening the uplift request already to increase the chance it gets in before people are offline.
  • String changes made/needed:
Attachment #9256101 - Flags: approval-mozilla-beta?

Comment on attachment 9256101 [details]
Bug 1744896 - Create WaylandVsyncSource on window creation, r=stransky

Approved for 96.0b9

Attachment #9256101 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Martin, given that it's still three weeks until FF96 will be available on Fedora and this probably affect quite a few users (even not necessary strongly enough to create more duplicate bugs), do you think you could spin up a new build there?

I assume there won't be an official 95 dot release anymore - and even if it will, I don't want to create more work for the sheriffs, given that this is Wayland only and thus unsupported.

Flags: needinfo?(stransky)

I don't have any reports from Fedora so I may wait to 96.

Flags: needinfo?(stransky)

(In reply to Martin Stránský [:stransky] (ni? me) from comment #91)

I don't have any reports from Fedora so I may wait to 96.

Just so you know: I'm on Fedora 35 and now that I have a high refresh rate monitor it is very easy for me to reproduce the issue with the current distro build. And heavy stuttering was also confirmed to happen on Fedora 35 in bug 1745098 comment 11. So I assume there must be some users out there for whom it makes quite a difference - while also not being critical :)

I assume there won't be an official 95 dot release anymore - and even if it will, I don't want to create more work for the sheriffs, given that this is Wayland only and thus unsupported.

Hm, is there a beta channel for the Flathub Firefox? Otherwise I guess I'll stick to 94 until 96 is out.

Okay, I'll do Fedora respin then.

(In reply to Ivan Molodetskikh from comment #93)

Hm, is there a beta channel for the Flathub Firefox? Otherwise I guess I'll stick to 94 until 96 is out.

Yes, fortunately there is: flatpak remote-add flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo

(In reply to Martin Stránský [:stransky] (ni? me) from comment #94)

Okay, I'll do Fedora respin then.

Thank you!

(In reply to Martin Stránský [:stransky] (ni? me) from comment #94)

Okay, I'll do Fedora respin then.

I'm also on Fedora 35. Have been working around it by setting layout.frame_rate to 144 - but it would be nice to have this patch applied in the distro build :)

(In reply to Jon Voss from comment #96)

(In reply to Martin Stránský [:stransky] (ni? me) from comment #94)

Okay, I'll do Fedora respin then.

I'm also on Fedora 35. Have been working around it by setting layout.frame_rate to 144 - but it would be nice to have this patch applied in the distro build :)

I have been doing the same. It's not perfect, as it's not proper Vsync and it stutters a lot, but it makes it bearable until 96 drops.
I'm more worried about the users that don't know how to fix it and will be stuck with incorrect frame-rate and terrible stutter during the 95 stable.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: