Scrolling on https://webassembly-summit.org/speakers/ feels sluggish with WebRender on Samsung Galaxy A7
Categories
(Core :: Graphics: WebRender, defect, P3)
Tracking
()
People
(Reporter: nachtigall, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: mobile, perf)
This website (when scrolling) feels on Firefox Preview (Android) with WebRender enabled. https://webassembly-summit.org/speakers/
Without WebRender (or normal Firefox) it feels not so sluggish when scrolling. There's kind of a zoom on the pictures effect when zoomed into viewport, not sure if this is why.
I have a Samsung Galaxy A3 (2017) and enabled WebRender myself in about:config (just to play a bit with it).
My about:support:
{
"application": {
"name": "Fennec",
"osVersion": "Linux 26",
"version": "73.0a1",
"buildID": "20200106092427",
"userAgent": "Mozilla/5.0 (Android 8.0.0; Mobile; rv:73.0) Gecko/73.0 Firefox/73.0",
"safeMode": false,
"updateChannel": "nightly",
"supportURL": "https://support.mozilla.org/1/mobile/73.0a1/Android/de/",
"numTotalWindows": 0,
"numRemoteWindows": 0,
"remoteAutoStart": false,
"autoStartStatus": 2,
"keyLocationServiceGoogleFound": true,
"keySafebrowsingGoogleFound": true,
"keyMozillaFound": true
},
"securitySoftware": {
"registeredAntiVirus": "",
"registeredAntiSpyware": "",
"registeredFirewall": ""
},
"processes": {
"remoteTypes": {
"web": 1
},
"maxWebContentProcesses": 1
},
"modifiedPreferences": {
"browser.cache.disk.amount_written": 1975380,
"browser.cache.disk.capacity": 51200,
"browser.cache.disk.filesystem_reported": 1,
"dom.presentation.device.name": "SM-A320FL",
"dom.w3c_pointer_events.enabled": true,
"extensions.lastAppVersion": "73.0a1",
"gfx.webrender.all": true,
"idle.lastDailyNotification": 1578939920,
"media.gmp.storage.version.observed": 1,
"network.predictor.cleaned-up": true,
"storage.vacuum.last.index": 0
},
"lockedPreferences": {},
"media": {
"currentAudioBackend": "opensl",
"currentMaxAudioChannels": 2,
"currentPreferredSampleRate": 48000,
"audioOutputDevices": [
{
"name": "",
"groupId": "",
"vendor": "",
"type": 2,
"state": 2,
"preferred": 15,
"supportedFormat": 12336,
"defaultFormat": 16,
"maxChannels": 2,
"defaultRate": 44100,
"maxRate": 44100,
"minRate": 41000,
"maxLatency": 410,
"minLatency": 128
}
],
"audioInputDevices": [
{
"name": "",
"groupId": "",
"vendor": "",
"type": 1,
"state": 2,
"preferred": 15,
"supportedFormat": 12336,
"defaultFormat": 16,
"maxChannels": 1,
"defaultRate": 44100,
"maxRate": 44100,
"minRate": 41000,
"maxLatency": 410,
"minLatency": 128
}
]
},
"javaScript": {
"incrementalGCEnabled": true
},
"accessibility": {
"isActive": false,
"forceDisabled": 0,
"handlerUsed": false,
"instantiator": ""
},
"libraryVersions": {
"NSPR": {
"minVersion": "4.24",
"version": "4.24"
},
"NSS": {
"minVersion": "3.49",
"version": "3.49"
},
"NSSUTIL": {
"minVersion": "3.49",
"version": "3.49"
},
"NSSSSL": {
"minVersion": "3.49",
"version": "3.49"
},
"NSSSMIME": {
"minVersion": "3.49",
"version": "3.49"
}
},
"userJS": {
"exists": false
},
"intl": {
"localeService": {
"requested": [
"de-DE"
],
"available": [
"an",
"ar",
"ast",
"az",
"be",
"bg",
"bn",
"br",
"bs",
"ca",
"cak",
"cs",
"cy",
"da",
"de",
"dsb",
"el",
"en-CA",
"en-GB",
"en-US",
"eo",
"es-AR",
"es-CL",
"es-ES",
"es-MX",
"et",
"eu",
"fa",
"ff",
"fi",
"fr",
"fy-NL",
"ga-IE",
"gd",
"gl",
"gn",
"gu-IN",
"he",
"hi-IN",
"hr",
"hsb",
"hu",
"hy-AM",
"id",
"is",
"it",
"ja",
"ka",
"kab",
"kk",
"kn",
"ko",
"lij",
"lo",
"lt",
"lv",
"ml",
"mr",
"ms",
"my",
"nb-NO",
"ne-NP",
"nl",
"nn-NO",
"oc",
"pa-IN",
"pl",
"pt-BR",
"pt-PT",
"rm",
"ro",
"ru",
"sk",
"sl",
"son",
"sq",
"sr",
"sv-SE",
"ta",
"te",
"th",
"tr",
"trs",
"uk",
"ur",
"uz",
"vi",
"wo",
"xh",
"zam",
"zh-CN",
"zh-TW"
],
"supported": [
"de",
"en-US"
],
"regionalPrefs": [
"de-DE"
],
"defaultLocale": "en-US"
},
"osPrefs": {
"systemLocales": [
"de-DE"
],
"regionalPrefsLocales": [
"de-DE"
]
}
},
"crashes": {
"submitted": [],
"pending": 0
},
"graphics": {
"numTotalWindows": 1,
"numAcceleratedWindows": 1,
"windowLayerManagerType": "WebRender",
"windowLayerManagerRemote": true,
"windowUsingAdvancedLayers": false,
"adapterDescription": "Model: SM-A320FL, Product: a3y17ltexc, Manufacturer: samsung, Hardware: samsungexynos7870, OpenGL: ARM -- Mali-T830 -- OpenGL ES 3.2 v1.r22p0-01rel0.1c3fafb6967aa7b4a29d549a102bdb12",
"adapterVendorID": "ARM",
"adapterDeviceID": "Mali-T830",
"adapterRAM": 0,
"adapterDrivers": "",
"driverVendor": "",
"driverVersion": "OpenGL ES 3.2 v1.r22p0-01rel0.1c3fafb6967aa7b4a29d549a102bdb12",
"driverDate": "",
"usesTiling": true,
"contentUsesTiling": true,
"offMainThreadPaintEnabled": false,
"offMainThreadPaintWorkerCount": 0,
"targetFrameRate": 59,
"webgl1Renderer": "ARM -- Mali-T830",
"webgl1Version": "OpenGL ES 3.2 v1.r22p0-01rel0.1c3fafb6967aa7b4a29d549a102bdb12",
"webgl1DriverExtensions": "GL_EXT_debug_marker GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_sliced_3d GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_to_texture GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_ARM_mali_program_binary GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic GL_EXT_robustness GL_EXT_draw_buffers_indexed GL_OES_draw_buffers_indexed GL_EXT_texture_border_clamp GL_OES_texture_border_clamp GL_EXT_texture_cube_map_array GL_OES_texture_cube_map_array GL_OES_sample_variables GL_OES_sample_shading GL_OES_shader_multisample_interpolation GL_EXT_shader_io_blocks GL_OES_shader_io_blocks GL_EXT_tessellation_shader GL_OES_tessellation_shader GL_EXT_primitive_bounding_box GL_OES_primitive_bounding_box GL_EXT_geometry_shader GL_OES_geometry_shader GL_ANDROID_extension_pack_es31a GL_EXT_gpu_shader5 GL_OES_gpu_shader5 GL_EXT_texture_buffer GL_OES_texture_buffer GL_EXT_copy_image GL_OES_copy_image GL_EXT_shader_non_constant_global_initializers GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float GL_EXT_YUV_target GL_OVR_multiview GL_OVR_multiview2 GL_OVR_multiview_multisampled_render_to_texture GL_KHR_robustness GL_KHR_robust_buffer_access_behavior GL_EXT_draw_elements_base_vertex GL_OES_draw_elements_base_vertex GL_EXT_protected_textures GL_EXT_buffer_storage ",
"webgl1Extensions": "ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_disjoint_timer_query EXT_float_blend EXT_sRGB OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float 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_etc1 WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_lose_context",
"webgl1WSIInfo": "EGL_VENDOR: ARM\nEGL_VERSION: 1.4 Midgard-\"r22p0-01rel0\"\nEGL_EXTENSIONS: EGL_ANDROID_image_native_buffer EGL_ANDROID_recordable EGL_ANDROID_native_fence_sync EGL_ANDROID_framebuffer_target EGL_ANDROID_image_crop EGL_ANDROID_blob_cache EGL_KHR_partial_update EGL_KHR_mutable_render_buffer EGL_KHR_config_attribs EGL_KHR_image EGL_KHR_image_base EGL_KHR_fence_sync EGL_KHR_wait_sync EGL_KHR_gl_colorspace EGL_KHR_get_all_proc_addresses EGL_IMG_context_priority EGL_KHR_no_config_context EGL_ARM_implicit_external_sync EGL_KHR_gl_texture_2D_image EGL_KHR_gl_renderbuffer_image EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_KHR_gl_texture_cubemap_image EGL_EXT_create_context_robustness",
"webgl2Renderer": "ARM -- Mali-T830",
"webgl2Version": "OpenGL ES 3.2 v1.r22p0-01rel0.1c3fafb6967aa7b4a29d549a102bdb12",
"webgl2DriverExtensions": "GL_EXT_debug_marker GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth24 GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_OES_packed_depth_stencil GL_OES_rgb8_rgba8 GL_EXT_read_format_bgra GL_OES_compressed_paletted_texture GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_image_external_essl3 GL_OES_EGL_sync GL_OES_texture_npot GL_OES_vertex_half_float GL_OES_required_internalformat GL_OES_vertex_array_object GL_OES_mapbuffer GL_EXT_texture_format_BGRA8888 GL_EXT_texture_rg GL_EXT_texture_type_2_10_10_10_REV GL_OES_fbo_render_mipmap GL_OES_element_index_uint GL_EXT_shadow_samplers GL_OES_texture_compression_astc GL_KHR_texture_compression_astc_ldr GL_KHR_texture_compression_astc_hdr GL_KHR_texture_compression_astc_sliced_3d GL_KHR_debug GL_EXT_occlusion_query_boolean GL_EXT_disjoint_timer_query GL_EXT_blend_minmax GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_OES_texture_3D GL_EXT_texture_storage GL_EXT_multisampled_render_to_texture GL_OES_surfaceless_context GL_OES_texture_stencil8 GL_EXT_shader_pixel_local_storage GL_ARM_shader_framebuffer_fetch GL_ARM_shader_framebuffer_fetch_depth_stencil GL_ARM_mali_program_binary GL_EXT_sRGB GL_EXT_sRGB_write_control GL_EXT_texture_sRGB_decode GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_RG8 GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OES_texture_storage_multisample_2d_array GL_OES_shader_image_atomic GL_EXT_robustness GL_EXT_draw_buffers_indexed GL_OES_draw_buffers_indexed GL_EXT_texture_border_clamp GL_OES_texture_border_clamp GL_EXT_texture_cube_map_array GL_OES_texture_cube_map_array GL_OES_sample_variables GL_OES_sample_shading GL_OES_shader_multisample_interpolation GL_EXT_shader_io_blocks GL_OES_shader_io_blocks GL_EXT_tessellation_shader GL_OES_tessellation_shader GL_EXT_primitive_bounding_box GL_OES_primitive_bounding_box GL_EXT_geometry_shader GL_OES_geometry_shader GL_ANDROID_extension_pack_es31a GL_EXT_gpu_shader5 GL_OES_gpu_shader5 GL_EXT_texture_buffer GL_OES_texture_buffer GL_EXT_copy_image GL_OES_copy_image GL_EXT_shader_non_constant_global_initializers GL_EXT_color_buffer_half_float GL_EXT_color_buffer_float GL_EXT_YUV_target GL_OVR_multiview GL_OVR_multiview2 GL_OVR_multiview_multisampled_render_to_texture GL_KHR_robustness GL_KHR_robust_buffer_access_behavior GL_EXT_draw_elements_base_vertex GL_OES_draw_elements_base_vertex GL_EXT_protected_textures GL_EXT_buffer_storage ",
"webgl2Extensions": "EXT_color_buffer_float EXT_disjoint_timer_query EXT_float_blend OVR_multiview2 WEBGL_compressed_texture_astc WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context",
"webgl2WSIInfo": "EGL_VENDOR: ARM\nEGL_VERSION: 1.4 Midgard-\"r22p0-01rel0\"\nEGL_EXTENSIONS: EGL_ANDROID_image_native_buffer EGL_ANDROID_recordable EGL_ANDROID_native_fence_sync EGL_ANDROID_framebuffer_target EGL_ANDROID_image_crop EGL_ANDROID_blob_cache EGL_KHR_partial_update EGL_KHR_mutable_render_buffer EGL_KHR_config_attribs EGL_KHR_image EGL_KHR_image_base EGL_KHR_fence_sync EGL_KHR_wait_sync EGL_KHR_gl_colorspace EGL_KHR_get_all_proc_addresses EGL_IMG_context_priority EGL_KHR_no_config_context EGL_ARM_implicit_external_sync EGL_KHR_gl_texture_2D_image EGL_KHR_gl_renderbuffer_image EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_KHR_gl_texture_cubemap_image EGL_EXT_create_context_robustness",
"info": {
"AzureCanvasBackend": "skia",
"AzureFallbackCanvasBackend": "none",
"AzureContentBackend": "skia",
"ApzTouchInput": 1,
"ApzAutoscrollInput": 1,
"TileHeight": 256,
"TileWidth": 256,
"DisplayCount": 1,
"Display0": "720x1280"
},
"featureLog": {
"features": [
{
"name": "HW_COMPOSITING",
"description": "Compositing",
"status": "force_enabled",
"log": [
{
"type": "default",
"status": "available"
},
{
"type": "user",
"status": "force_enabled",
"message": "Force-enabled by pref"
}
]
},
{
"name": "OPENGL_COMPOSITING",
"description": "OpenGL Compositing",
"status": "force_enabled",
"log": [
{
"type": "default",
"status": "available"
},
{
"type": "user",
"status": "force_enabled",
"message": "Force-enabled by pref"
}
]
},
{
"name": "WEBRENDER",
"description": "WebRender",
"status": "available",
"log": [
{
"type": "default",
"status": "opt-in",
"message": "WebRender is an opt-in feature"
},
{
"type": "user",
"status": "available",
"message": "Force enabled by pref"
}
]
},
{
"name": "WEBRENDER_QUALIFIED",
"description": "WebRender qualified",
"status": "blacklisted",
"log": [
{
"type": "default",
"status": "available"
},
{
"type": "env",
"status": "blacklisted",
"message": "No qualified hardware"
}
]
},
{
"name": "WEBRENDER_COMPOSITOR",
"description": "WebRender native compositor",
"status": "disabled",
"log": [
{
"type": "default",
"status": "disabled",
"message": "Disabled by default"
}
]
},
{
"name": "OMTP",
"description": "Off Main Thread Painting",
"status": "disabled",
"log": [
{
"type": "default",
"status": "disabled",
"message": "Disabled by default"
}
]
},
{
"name": "WEBGPU",
"description": "WebGPU",
"status": "disabled",
"log": [
{
"type": "default",
"status": "disabled",
"message": "Disabled by default"
}
]
}
],
"fallbacks": []
},
"crashGuards": []
},
"extensions": [],
"features": []
}
Updated•5 years ago
|
Comment 1•5 years ago
|
||
I confirmed that this doesn't seem to be a problem on desktop or Adreno.
Same problem also on https://websummit.com/speakers
Scrolling with Firefox Preview Nightly with WebRender enabled is really stuttering.
With WebRender disabled the scrolling is fluent. Also fluent with normal stable Firefox on Android.
The https://websummit.com/speakers also has huge, many fotos like https://webassembly-summit.org/speakers/ - maybe that's the main reason.
I am the original reporter, so same phone specs.
Updated•4 years ago
|
Comment 4•4 years ago
|
||
Profile on Galaxy A5 2017: https://share.firefox.dev/2ZSGwD5
Scrolling is definitely sluggish, and there's a couple stutters which correspond to hundreds of milliseconds glCopyImageSubData
calls in the profile. Need to get to the bottom of this before shipping to Mali-T. It's fine on Mali-G.
Updated•3 years ago
|
Updated•2 years ago
|
Description
•