Skip to content
This repository has been archived by the owner on Feb 20, 2023. It is now read-only.

[Bug] Large black rectangles and screen flickering #19360

Closed
iinuwa opened this issue May 3, 2021 · 10 comments
Closed

[Bug] Large black rectangles and screen flickering #19360

iinuwa opened this issue May 3, 2021 · 10 comments
Labels
🐞 bug Crashes, Something isn't working, .. needs:triage Issue needs triage

Comments

@iinuwa
Copy link

iinuwa commented May 3, 2021

Steps to reproduce

Open any website.

Expected behavior

Full webpage is drawn correctly.

Actual behavior

Large portions of the screen (mostly large rectangle at the top and bottom of the viewport) are just black rectangles. During scroll, the rectangles flicker in color, but the content that should be rendered on those rectangles is never drawn. (That is, I can see some content in between the black rectangles, and if I scroll past a black rectangle, I can see more content followed by another black rectangle. But I can never scroll in such a way that I can see the blacked-out content.)

image

Tapping the screen seems to still work; I can long press and get links and contextual information. So it seems that it's just drawing the screen is having an issue.

This is similar to #19348 and #19342, but the rectangles are much larger on my screen, always flicker and appear on every website I visit. Also, those two issues reference Mali GPUs, but this is a Qualcomm GPU.

This began happening on my device some time last week.

Device information

  • Device vendor / model and Android version: Moto g6 Play (XT1922-9, hardware version P4), Android version 9
  • Firefox for Android version: ? 90.0a1 (Build #2015808079)

┆Issue is synchronized with this Jira Task

@iinuwa iinuwa added the 🐞 bug Crashes, Something isn't working, .. label May 3, 2021
@iinuwa iinuwa changed the title [Bug] Large black rectnagles and screen flickering [Bug] Large black rectangles and screen flickering May 3, 2021
@github-actions github-actions bot added the needs:triage Issue needs triage label May 3, 2021
@kbrosnan
Copy link
Contributor

kbrosnan commented May 3, 2021

Duplicate #19348

@kbrosnan kbrosnan closed this as completed May 3, 2021
@jamienicol
Copy link

Hi @iinuwa , could you please go to about:support, click "copy text to clipboard", and attach that information to this bug?

Would you be able to run mozregression to determine what change introduced the bug. You need to have USB debugging enabled on your device, and plug it in to your computer. Then you can install the mozregression GUI from that link, or if you're running Linux or Macos you can install the command line version with pip install mozregression. Then you can run mozregression --app gve --good 88 on the command line, or launch the GUI and make sure you select "geckoview example" as the application. This will then install a series of versions and you can answer whether it is good or bad, and eventually it will find the change which caused the issue. If you need any help with that please feel free to ask! Thanks

@iinuwa
Copy link
Author

iinuwa commented May 4, 2021

I assume I should be using --app gve (GeckoView Engine?)
This is the information from the last "bad" build from mozregression.

app_name: gve
build_date: 2021-04-20 13:39:58.570000
build_file: /home/iinuwa/.mozilla/mozregression/persist/bd6a10e0e895--autoland--arm--geckoview_example.apk
build_type: integration
build_url: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/FmqEbNdLQ4OgT505k4dFMw/runs/0/artifacts/public%2Fbuild%2Fgeckoview_example.apk
changeset: bd6a10e0e8954b3667fc246d174b741f58d37393
pushlog_url: https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=8d99f538b0bfbf20f664904952bd42ec48a55fcc&tochange=bd6a10e0e8954b3667fc246d174b741f58d37393
repo_name: autoland
repo_url: https://hg.mozilla.org/integration/autoland
task_id: FmqEbNdLQ4OgT505k4dFMw

I'll try to post the text from my phone later; it's exhibiting the same bug, so I can't see the whole screen. 😆

@iinuwa
Copy link
Author

iinuwa commented May 4, 2021


Troubleshooting Information
This page contains technical information that might be useful when you’re trying to solve a problem. If you are looking for answers to common questions about Nightly, check out our support website.
Application Basics
Name 	Firefox Nightly
Version 	90.0a1
Build ID 	20210502092952
Distribution ID 	
User Agent 	Mozilla/5.0 (Android 9; Mobile; rv:90.0) Gecko/90.0 Firefox/90.0
OS 	Linux 28 #1 SMP PREEMPT Sat Apr 4 11:42:06 CDT 2020
Application Binary 	/data/user/0/org.mozilla.fenix/dummy
Enabled Plugins 	about:plugins
Build Configuration 	about:buildconfig
Memory Use 	about:memory
Performance 	about:performance
Registered Service Workers 	about:serviceworkers
Multiprocess Windows 	0/0
Fission Windows 	0/0 Disabled by default
Remote Processes 	1
Google Location Service Key 	Found
Google Safebrowsing Key 	Found
Mozilla Location Service Key 	Found
Safe Mode 	false
Crash Reports for the Last 3 Days
Report ID 	Submitted

All Crash Reports

This application has not been configured to display crash reports.
Nightly Features
Name 	Version 	ID
Remote Processes
Type 	Count
Web Content	1 / 2
Add-ons
Name 	Type 	Version 	Enabled 	ID
Mozilla Android Components - Ads	extension	90.0.20210502143118.0502174659	true	ads@mozac.org
Mozilla Android Components - Browser Icons	extension	90.0.20210502143118.0502143947	true	icons@mozac.org
Mozilla Android Components - Cookies	extension	90.0.20210502143118.0502174659	true	cookies@mozac.org
Mozilla Android Components - Firefox Accounts WebChannel	extension	90.0.20210502143118.0502143937	true	fxa@mozac.org
Mozilla Android Components - ReaderView	extension	90.0.20210502143118.0502143820	true	readerview@mozac.org
Mozilla Android Components - Web Compatibility Interventions	extension	22.0.0	true	webcompat@mozilla.org
Mozilla Android Components - WebCompat Reporter	extension	2.0.0	true	webcompat-reporter@mozilla.org
Dark Reader	extension	4.9.32	false	addon@darkreader.org
Graphics
Features
Compositing	WebRender
Asynchronous Pan/Zoom	touch input enabled; autoscroll enabled; smooth pinch-zoom enabled
WebGL 1 Driver WSI Info	EGL_VENDOR: Android
EGL_VERSION: 1.4 Android META-EGL
EGL_EXTENSIONS: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_ANDROID_get_native_client_buffer EGL_ANDROID_front_buffer_auto_refresh EGL_ANDROID_get_frame_timestamps EGL_EXT_surface_SMPTE2086_metadata EGL_EXT_surface_CTA861_3_metadata EGL_KHR_image EGL_KHR_image_base EGL_EXT_image_gl_colorspace EGL_KHR_lock_surface EGL_KHR_gl_colorspace EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_EXT_create_context_robustness EGL_ANDROID_image_native_buffer EGL_KHR_wait_sync EGL_ANDROID_recordable EGL_KHR_partial_update EGL_EXT_pixel_format_float EGL_KHR_create_context_no_error EGL_KHR_mutable_render_buffer EGL_EXT_yuv_surface EGL_IMG_context_priority EGL_KHR_no_config_context 
IsWebglOutOfProcessEnabled: 0
WebGL 1 Driver Renderer	Qualcomm -- Adreno (TM) 308
WebGL 1 Driver Version	OpenGL ES 3.0 V@331.0 (GIT@054a40f, I67e1628f4e) (Date:05/18/19)
WebGL 1 Driver Extensions	GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_half_float GL_OES_framebuffer_object GL_OES_rgb8_rgba8 GL_OES_compressed_ETC1_RGB8_texture GL_AMD_compressed_ATC_texture GL_OES_texture_npot GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_OES_texture_3D GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_QCOM_alpha_test GL_OES_depth24 GL_OES_packed_depth_stencil GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_EXT_sRGB GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_EXT_texture_type_2_10_10_10_REV GL_EXT_texture_sRGB_decode GL_OES_element_index_uint GL_QCOM_user_clip_planes GL_EXT_EGL_image_external_wrap_modes GL_EXT_multisampled_render_to_texture GL_EXT_robustness GL_OES_get_program_binary GL_EXT_debug_label GL_QCOM_tiled_rendering GL_OES_standard_derivatives GL_OES_vertex_array_object GL_EXT_YUV_target GL_EXT_sRGB_write_control GL_EXT_discard_framebuffer GL_OES_surfaceless_context GL_KHR_no_error GL_EXT_debug_marker GL_OES_EGL_image_external_essl3 GL_EXT_EGL_image_storage 
WebGL 1 Extensions	ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_sRGB EXT_texture_filter_anisotropic MOZ_debug 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_etc WEBGL_compressed_texture_etc1 WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_lose_context
WebGL 2 Driver WSI Info	EGL_VENDOR: Android
EGL_VERSION: 1.4 Android META-EGL
EGL_EXTENSIONS: EGL_KHR_get_all_proc_addresses EGL_ANDROID_presentation_time EGL_KHR_swap_buffers_with_damage EGL_ANDROID_get_native_client_buffer EGL_ANDROID_front_buffer_auto_refresh EGL_ANDROID_get_frame_timestamps EGL_EXT_surface_SMPTE2086_metadata EGL_EXT_surface_CTA861_3_metadata EGL_KHR_image EGL_KHR_image_base EGL_EXT_image_gl_colorspace EGL_KHR_lock_surface EGL_KHR_gl_colorspace EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_gl_renderbuffer_image EGL_KHR_reusable_sync EGL_KHR_fence_sync EGL_KHR_create_context EGL_KHR_surfaceless_context EGL_EXT_create_context_robustness EGL_ANDROID_image_native_buffer EGL_KHR_wait_sync EGL_ANDROID_recordable EGL_KHR_partial_update EGL_EXT_pixel_format_float EGL_KHR_create_context_no_error EGL_KHR_mutable_render_buffer EGL_EXT_yuv_surface EGL_IMG_context_priority EGL_KHR_no_config_context 
IsWebglOutOfProcessEnabled: 0
WebGL 2 Driver Renderer	Qualcomm -- Adreno (TM) 308
WebGL 2 Driver Version	OpenGL ES 3.0 V@331.0 (GIT@054a40f, I67e1628f4e) (Date:05/18/19)
WebGL 2 Driver Extensions	GL_OES_EGL_image GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_half_float GL_OES_framebuffer_object GL_OES_rgb8_rgba8 GL_OES_compressed_ETC1_RGB8_texture GL_AMD_compressed_ATC_texture GL_OES_texture_npot GL_EXT_texture_filter_anisotropic GL_EXT_texture_format_BGRA8888 GL_OES_texture_3D GL_EXT_color_buffer_float GL_EXT_color_buffer_half_float GL_QCOM_alpha_test GL_OES_depth24 GL_OES_packed_depth_stencil GL_OES_depth_texture GL_OES_depth_texture_cube_map GL_EXT_sRGB GL_OES_texture_float GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_EXT_texture_type_2_10_10_10_REV GL_EXT_texture_sRGB_decode GL_OES_element_index_uint GL_QCOM_user_clip_planes GL_EXT_EGL_image_external_wrap_modes GL_EXT_multisampled_render_to_texture GL_EXT_robustness GL_OES_get_program_binary GL_EXT_debug_label GL_QCOM_tiled_rendering GL_OES_standard_derivatives GL_OES_vertex_array_object GL_EXT_YUV_target GL_EXT_sRGB_write_control GL_EXT_discard_framebuffer GL_OES_surfaceless_context GL_KHR_no_error GL_EXT_debug_marker GL_OES_EGL_image_external_essl3 GL_EXT_EGL_image_storage 
WebGL 2 Extensions	EXT_color_buffer_float EXT_texture_filter_anisotropic MOZ_debug WEBGL_compressed_texture_etc WEBGL_compressed_texture_etc1 WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context
Uses Tiling	true
Uses Tiling (Content)	true
Target Frame Rate	60
GPU #1
Active	Yes
Description	Model: moto g(6) play, Product: jeter, Manufacturer: motorola, Hardware: qcom, OpenGL: Qualcomm -- Adreno (TM) 308 -- OpenGL ES 3.0 V@331.0 (GIT@054a40f, I67e1628f4e) (Date:05/18/19)
Vendor ID	Qualcomm
Device ID	Adreno (TM) 308
Driver Version	OpenGL ES 3.0 V@331.0 (GIT@054a40f, I67e1628f4e) (Date:05/18/19)
RAM	0
Diagnostics
AzureCanvasBackend	skia
AzureContentBackend	skia
AzureFallbackCanvasBackend	skia
CMSOutputProfile	Empty profile data
Display0	720x1440
DisplayCount	1
TileHeight	256
TileWidth	256
Device Reset	
Decision Log
HW_COMPOSITING	
available by default
force_enabled by user: Force-enabled by pref
OPENGL_COMPOSITING	
available by default
force_enabled by user: Force-enabled by pref
WEBRENDER	
available by default
WEBRENDER_QUALIFIED	
available by default
WEBRENDER_COMPOSITOR	
disabled by default: Disabled by default
WEBRENDER_PARTIAL	
available by default
blocked by env: Partial present blocked
WEBRENDER_SHADER_CACHE	
available by default
blocklisted by env: Blocklisted by gfxInfo
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
blocklisted by env: No qualified hardware
OMTP	
disabled by default: Disabled by default
WEBGPU	
disabled by default: Disabled by default
Media
Audio Backend	opensl
Max Channels	2
Preferred Sample Rate	48000
Roundtrip latency (standard deviation)	...
Output Devices
Name 	Group 	Vendor 	State 	Preferred 	Format 	Channels 	Rate 	Latency
Default audio output device			Enabled	All	default: S16LE, support: S16LE S16BE F32LE F32BE	2	default: 44100, support: 44100 - 44100	128 - 441
Input Devices
Name 	Group 	Vendor 	State 	Preferred 	Format 	Channels 	Rate 	Latency
Default audio input device			Enabled	All	default: S16LE, support: S16LE S16BE F32LE F32BE	1	default: 44100, support: 44100 - 44100	128 - 441
Media Capabilities

Environment Variables
Name 	Value
Important Modified Preferences
	Name 	Value dom.presentation.device.name	moto g(6) play
dom.w3c_pointer_events.enabled	true
extensions.lastAppVersion	90.0a1
idle.lastDailyNotification	1620002750
media.gmp.storage.version.observed	1
network.trr.blocklist_cleanup_done	true
privacy.purge_trackers.date_in_cookie_database	0
privacy.purge_trackers.last_purge	1620002751481
security.remote_settings.crlite_filters.checked	1620133717
security.remote_settings.intermediates.checked	1620133717
storage.vacuum.last.index	0
user.js Preferences

Your profile folder contains a user.js file, which includes preferences that were not created by Nightly.
Important Locked Preferences
	Name 	Value fission.autostart.session	false
Accessibility
Activated 	false
Prevent Accessibility 	0
Library Versions
	Expected minimum version	Version in use
NSPR	4.31 Beta	4.31 Beta
NSS	3.64	3.64
NSSSMIME	3.64	3.64
NSSSSL	3.64	3.64
NSSUTIL	3.64	3.64
Startup Cache
Disk Cache Path 	/data/user/0/org.mozilla.fenix/files/mozilla/gttt0iu1.default/startupCache/startupCache.4.little
Ignore Disk Cache 	false
Found Disk Cache on Init 	true
Wrote to Disk Cache 	false
Internationalization & Localization
Application Settings
Requested Locales 	["en-US"]
Available Locales 	["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"]
App Locales 	["en-US","en-CA","en-GB"]
Regional Preferences 	["en-US"]
Default Locale 	"en-US"
Operating System
System Locales 	["en-US"]
Regional Preferences 	["en-US"]
Remote Debugging (Chromium Protocol)
Accepting Connections 	false
URL 	

@jamienicol
Copy link

Thanks @iinuwa that's really helpful.

Could you also try going to about:config, setting gfx.webrender.allow-partial-present-buffer-age to false, restart, and see if that helps. If not, then try setting gfx.webrender.max-partial-present-rects to 0 (zero), restart, and see if that helps?

@kbrosnan It seems like this isn't actually a duplicate of #19348 (even though it looks similar), due to this being on Adreno rather than Mali-T.

@iinuwa
Copy link
Author

iinuwa commented May 4, 2021

@jamienicol: None of those combinations (allow-partial: false, max-partial: 1; allow-partial: false, max-partial: 0; allow-partial: true, max-partial: 0) made a difference.

@jamienicol
Copy link

Thanks. I think that's expected, because partial present should be disabled by default on your device, because we already had seen it reported as being buggy. So this issue isn't related to partial present.

Could you try running mozregression again, this time with --pref 'gfx.webrender.all:true' (as well as --app gve as you said). Then try running an old version and see if you can see this bug. (I expect you will see lots of unrelated bugs on older versions, but just try to say good or bad depending on if you can see the same bug as in your original screenshots)

@iinuwa
Copy link
Author

iinuwa commented May 4, 2021

Took a while! I didn't immediately notice any other weird unrelated bugs, so that's interesting

With WebRender force-enabled, I got this:

42:07.54 INFO: Narrowed integration regression window from [3d6c5508, b3574370] (3 builds) to [3d6c5508, bf177e66] (2 builds) (~1 steps left)
42:07.55 INFO: No more integration revisions, bisection finished.
42:07.55 INFO: Last good revision: 3d6c550826125822e4c38aee5c85327d97908243
42:07.55 INFO: First bad revision: bf177e6625275332a646d7db8c2d6fbdd7a85e02
42:07.55 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=3d6c550826125822e4c38aee5c85327d97908243&tochange=bf177e6625275332a646d7db8c2d6fbdd7a85e02

@jamienicol
Copy link

Thanks @iinuwa, that's interesting. I think I may need to get my hands on one of these devices to investigate this further.

In the meantime, if you weren't aware, you can set gfx.webrender.force-disabled to true in about:config to work around the bug.

@iinuwa
Copy link
Author

iinuwa commented May 4, 2021

Sounds good. Should this be reopened then?

Let me know if you want anymore testing done.

In the meantime, if you weren't aware, you can set gfx.webrender.force-disabled to true in about:config to work around the bug.

Ah, that works. Thanks!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🐞 bug Crashes, Something isn't working, .. needs:triage Issue needs triage
Projects
None yet
Development

No branches or pull requests

3 participants