New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 883276 link

Starred by 8 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 25
Cc:
Components:
EstimatedDays: ----
NextAction: 2018-09-24
OS: Android
Pri: 1
Type: ----



Sign in to add a comment

Chrome incorrectly displays text. See attached file.

Reported by tadg...@gmail.com, Sep 12

Issue description

Device name: samsung galaxy note 4 sm-n9100

From "Settings > About Chrome"
Application version:69.0.3497.91
Operating system:android 5.1.1

URLs (if applicable):

Steps to reproduce:
(1) run chrome
(2) go to any url
(3) 

Expected result: correct text displaying without artefacts


Actual result: a text, where some or many letters disappeared completely or partially as on screenshots of this page (sometimes text p)


 
Screenshot_2018-09-12-15-27-01.png
307 KB View Download
Screenshot_2018-09-12-15-16-47.png
162 KB View Download
Please fix this problem
Components: Blink>Fonts Blink>Paint
Components: -Blink>Paint Internals>GPU>Rasterization
Cc: enne@chromium.org
Is this possibly related to OOP-R on Adreno GPUs with older versions of Android?
Cc: khushals...@chromium.org
Components: Internals>Compositing>OOP-Raster
Labels: -Pri-3 Needs-Feedback Pri-1
Owner: enne@chromium.org
Status: Assigned (was: Unconfirmed)
To the original bug submitter: can you include the contents of chrome://gpu? Can you test if going to chrome://flags/#enable-oop-rasterization and setting "Out of process rasterization" to disabled fixes the bug?

This is a Lollipop Adreno device, and so ideally should be disabled in 69.0.3497.84 as per https://storage.googleapis.com/chromium-find-releases-static/a25.html#a25f8deadd557351da33764f9818c55d278c61e8
Cc: ericrk@chromium.org
I am also affected by this - text rendering on my device very similar to posted screenshot.  

Tried setting out of process rasterization to disabled, problem remains.

Running Qualcomm Adreno 430 on a Nexus 6P with Chrome 69.0.3497.100.

I have just read answer and tried to remove bug by disabling #enable-oop-rasterization. The bug has disappeared, but activated in a minute. 
Also I am sending gpu state



Graphics Feature Status
Canvas: Hardware accelerated
Flash: Hardware accelerated
Flash Stage3D: Hardware accelerated
Flash Stage3D Baseline profile: Hardware accelerated
Compositing: Hardware accelerated
Multiple Raster Threads: Disabled
Native GpuMemoryBuffers: Software only. Hardware acceleration disabled
Out-of-process Rasterization: Disabled
Hardware Protected Video Decode: Unavailable
Rasterization: Hardware accelerated
Skia Deferred Display List: Disabled
Skia Renderer: Disabled
Surface Synchronization: Disabled
Video Decode: Hardware accelerated
Viz Service Display Compositor: Disabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
Driver Bug Workarounds
broken_egl_image_ref_counting
clear_uniforms_before_first_program_use
disable_blend_equation_advanced
disable_discard_framebuffer
disable_framebuffer_cmaa
disable_program_caching_for_transform_feedback
disable_program_disk_cache
disable_timestamp_queries
dont_disable_webgl_when_compositor_context_lost
dont_initialize_uninitialized_locals
force_cube_map_positive_x_allocation
max_copy_texture_chromium_size_1048576
max_msaa_sample_count_4
max_texture_size_limit_4096
multisample_renderbuffer_resize_emulation
scalarize_vec_and_mat_constructor_args
unbind_attachments_on_bound_render_fbo_delete
unbind_egl_context_to_flush_driver_caches
use_es2_for_oopr
use_virtualized_gl_contexts
wake_up_gpu_before_drawing
Problems Detected
Protected video decoding with swap chain is for Windows and Intel only
Disabled Features: protected_video_decode
Frequent crashes on Adreno (TM) on L and below: 870964
Disabled Features: oop_rasterization
Non-virtual contexts on Qualcomm sometimes cause out-of-order frames: 289461
Applied Workarounds: use_virtualized_gl_contexts
The first draw operation from an idle state is slow: 309734
Applied Workarounds: wake_up_gpu_before_drawing
Clear uniforms before first program use on all platforms: 124764, 349137
Applied Workarounds: clear_uniforms_before_first_program_use
Always rewrite vec/mat constructors to be consistent: 398694
Applied Workarounds: scalarize_vec_and_mat_constructor_args
Adreno 420 driver loses FBO attachment contents on bound FBO deletion: 457027
Applied Workarounds: unbind_attachments_on_bound_render_fbo_delete
Adreno 420 driver drops draw calls after FBO invalidation: 443060
Applied Workarounds: disable_discard_framebuffer
EXT_disjoint_timer_query fails after 256 queries on adreno 4xx: 477514
Applied Workarounds: disable(GL_EXT_disjoint_timer_query), disable(GL_EXT_disjoint_timer_query_webgl2)
GL_KHR_blend_equation_advanced breaks blending on Adreno 4xx: 488485
Applied Workarounds: disable_blend_equation_advanced
glFinish doesn't clear caches on Android: 509727
Applied Workarounds: unbind_egl_context_to_flush_driver_caches
Android Adreno crashes on binding incomplete cube map texture to FBO: 518889
Applied Workarounds: force_cube_map_positive_x_allocation
CHROMIUM_copy_texture with 1MB copy per flush to avoid unwanted cache growth on Adreno: 542478
Applied Workarounds: max_copy_texture_chromium_size_1048576
glReadPixels fails on FBOs with SRGB_ALPHA textures, Nexus 5X: 550292, 565179
Applied Workarounds: disable(GL_EXT_sRGB)
EGLImage ref counting across EGLContext/threads is broken: 585250
Applied Workarounds: broken_egl_image_ref_counting
Limit max texure size to 4096 on all of Android
Applied Workarounds: max_texture_size_limit_4096
Use GL_INTEL_framebuffer_CMAA on ChromeOS: 535198
Applied Workarounds: disable_framebuffer_cmaa
Disable KHR_blend_equation_advanced until cc shaders are updated: 661715
Applied Workarounds: disable(GL_KHR_blend_equation_advanced), disable(GL_KHR_blend_equation_advanced_coherent)
Program binaries don't contain transform feedback varyings on Qualcomm GPUs: 658074
Applied Workarounds: disable_program_caching_for_transform_feedback
Certain Adreno 4xx and 5xx drivers often crash in glProgramBinary.: 699122
Applied Workarounds: disable_program_disk_cache
Multisampled color renderbuffers can't be resized on Qualcomm 4xx/5xx: 696126
Applied Workarounds: multisample_renderbuffer_resize_emulation
eglSwapBuffers intermittently fails on Android when app goes to background: 744678
Applied Workarounds: dont_disable_webgl_when_compositor_context_lost
glGetQueryObject(GL_QUERY_RESULT_AVAILABLE) blocks unexpectedly on Adreno: 750306, 764526
Applied Workarounds: disable(GL_EXT_disjoint_timer_query), disable(GL_EXT_disjoint_timer_query_webgl2)
Code produced by local variable initialization often triggers crashes in Marshmallow Adreno driver: 728271
Applied Workarounds: dont_initialize_uninitialized_locals
Don't expose disjoint_timer_query extensions to WebGL: 808744
Limit MSAA to 4x on Android devices: 797243
Applied Workarounds: max_msaa_sample_count_4
A deleted query id for GL_TIMESTAMP cannot be reused for other query targets: 858879
Applied Workarounds: disable_timestamp_queries
Frequent crashes on Adreno (TM) on L and below: 866613
Applied Workarounds: use_es2_for_oopr
Out-of-process accelerated rasterization has been disabled, either via blacklist, about:flags or the command line.
Disabled Features: oop_rasterization
Raster is using a single thread.
Disabled Features: multiple_raster_threads
Native GpuMemoryBuffers have been disabled, either via about:flags or command line.
Disabled Features: native_gpu_memory_buffers
Surface synchronization has been disabled by Finch trial or command line.
Disabled Features: surface_synchronization
Viz service display compositor is not enabled by default.
Disabled Features: viz_display_compositor
Skia renderer is not used by default.
Disabled Features: skia_renderer
Skia deferred display list is not used by default.
Disabled Features: skia_deferred_display_list
Version Information
Data exported	2018-09-18T10:32:26.288Z
Chrome version	Chrome/69.0.3497.91
Operating system	Android 5.1.1
Software rendering list URL	https://chromium.googlesource.com/chromium/src/+/6d0a1a182f129a602c8b88069f62cd368395726d/gpu/config/software_rendering_list.json
Driver bug list URL	https://chromium.googlesource.com/chromium/src/+/6d0a1a182f129a602c8b88069f62cd368395726d/gpu/config/gpu_driver_bug_list.json
ANGLE commit id	6ffc489d4f18
2D graphics backend	Skia/69 e110fd1ebd2d559838c49a8821ebf18986bd6ec2-
Command Line	--use-mobile-user-agent --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 --use-mobile-user-agent --enable-pinch --enable-viewport --validate-input-event-stream --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --enable-dom-distiller --flag-switches-begin --disable-oop-rasterization --disable-features=ChromeModernDesign --flag-switches-end
Driver Information
Initialization time	364
In-process GPU	false
Passthrough Command Decoder	false
Sandboxed	false
GPU0	VENDOR = 0x0000 [Qualcomm], DEVICE= 0x0000 [Adreno (TM) 420] *ACTIVE*
Optimus	false
AMD switchable	false
Driver vendor	
Driver version	104.0
Driver date	
Pixel shader version	3.10
Vertex shader version	3.10
Max. MSAA samples	4
Machine model name	SM-N9100
Machine model version	
GL_VENDOR	Qualcomm
GL_RENDERER	Adreno (TM) 420
GL_VERSION	OpenGL ES 3.1V@104.0 (GIT@I15bf295f1a)
GL_EXTENSIONS	GL_EXT_debug_marker 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_KHR_texture_compression_astc_ldr 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_float_linear 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_EXT_copy_image GL_EXT_geometry_shader GL_EXT_tessellation_shader GL_OES_texture_stencil8 GL_EXT_shader_io_blocks GL_OES_shader_image_atomic GL_OES_sample_variables GL_EXT_texture_border_clamp GL_EXT_multisampled_render_to_texture GL_OES_shader_multisample_interpolation GL_EXT_texture_cube_map_array GL_EXT_draw_buffers_indexed GL_EXT_gpu_shader5 GL_EXT_robustness GL_EXT_texture_buffer GL_OES_texture_storage_multisample_2d_array GL_OES_sample_shading GL_OES_get_program_binary GL_EXT_debug_label GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_QCOM_tiled_rendering GL_ANDROID_extension_pack_es31a GL_EXT_primitive_bounding_box GL_OES_standard_derivatives GL_OES_vertex_array_object GL_EXT_disjoint_timer_query GL_KHR_debug GL_EXT_sRGB_write_control
Disabled Extensions	GL_EXT_disjoint_timer_query GL_EXT_disjoint_timer_query_webgl2 GL_EXT_sRGB GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent
Disabled WebGL Extensions	EXT_disjoint_timer_query EXT_disjoint_timer_query_webgl2
Window system binding vendor	
Window system binding version	
Window system binding extensions	
Direct rendering	Yes
Reset notification strategy	0x8252
GPU process crash count	0
Compositor Information
Tile Update Mode	One-copy
Partial Raster	Enabled
GpuMemoryBuffers Status
ATC	Software only
ATCIA	Software only
DXT1	Software only
DXT5	Software only
ETC1	Software only
R_8	Software only
R_16	Software only
RG_88	Software only
BGR_565	Software only
RGBA_4444	Software only
RGBX_8888	Software only
RGBA_8888	Software only
BGRX_8888	Software only
BGRX_1010102	Software only
RGBX_1010102	Software only
BGRA_8888	Software only
RGBA_F16	Software only
YVU_420	Software only
YUV_420_BIPLANAR	Software only
UYVY_422	Software only
Display(s) Information
Info	Display[0] bounds=[0,0 360x640], workarea=[0,0 360x640], scale=4, external.
Color space information	{primaries:BT709, transfer:IEC61966_2_1, matrix:RGB, range:FULL}
Bits per color component	8
Bits per pixel	24
Video Acceleration Information
Decode vp8	up to 3840x2160 pixels
Decode vp8	up to 3840x2160 pixels (encrypted)
Decode vp9 profile0	up to 3840x2160 pixels (encrypted)
Decode vp9 profile0	up to 3840x2160 pixels (encrypted)
Decode vp9 profile1	up to 3840x2160 pixels (encrypted)
Decode vp9 profile1	up to 3840x2160 pixels (encrypted)
Decode vp9 profile2	up to 3840x2160 pixels (encrypted)
Decode vp9 profile2	up to 3840x2160 pixels (encrypted)
Decode vp9 profile3	up to 3840x2160 pixels (encrypted)
Decode vp9 profile3	up to 3840x2160 pixels (encrypted)
Decode h264 baseline	up to 3840x2160 pixels
Decode h264 main	up to 3840x2160 pixels
Decode h264 extended	up to 3840x2160 pixels
Decode h264 high	up to 3840x2160 pixels
Decode h264 high 10	up to 3840x2160 pixels
Decode h264 high 4:2:2	up to 3840x2160 pixels
Decode h264 high 4:4:4 predictive	up to 3840x2160 pixels
Decode h264 scalable baseline	up to 3840x2160 pixels
Decode h264 scalable high	up to 3840x2160 pixels
Decode h264 stereo high	up to 3840x2160 pixels
Decode h264 multiview high	up to 3840x2160 pixels
Encode vp8	up to 1280x720 pixels and/or 30.000 fps
Encode h264 baseline	up to 1280x720 pixels and/or 30.000 fps

I have just read answer and tried to remove bug by disabling #enable-oop-rasterization. The bug has disappeared, but activated in a minute. 
Also I am sending gpu state
GPU.txt
11.0 KB View Download
Cc: bsalomon@chromium.org
Thanks for all the gpu info.  It's really appreciated to help try to track this down.

Can repro on a Nexus 6P with Marshmallow on ToT (r592479) on something Wikipedia: https://en.wikipedia.org/wiki/The_New_York_Times.  Refreshing the page yields a broken first paragraph (although repainting may or may not fix this).

However, this only is broken for gpu rasterization and not oop rasterization, so far as I can tell.  The above users have oop rasterization disabled in their gpu info, so it's definitely off.  Additionally, disabling gpu rasterization entirely and using software rasterization also fixes this.  It's very curious.

I'm going to try to bisect and see if I can find where this broke.
Definitely broken at 564362.  Seems to be working at 564264.  It's a bit of a flaky repro, but refreshing chrome://version about ~20 times seemed most reliable.  I tested 564264 quite a bit to make sure it was good and I'm reasonably confident.

https://chromium.googlesource.com/chromium/src/+log/3eae45e380e99ac996aa4fc2286c3b16fe75c0fb..3860f3e4d199e934052b3486a226dde44fb22e9a?pretty=fuller&n=10000

Nothing jumps out at me here.  Maybe time to dig in and build directly.
Cc: sunn...@chromium.org
Owner: ccameron@chromium.org
Sorry, ccameron, this is your change: https://chromium.googlesource.com/chromium/src/+/fc70961580f6f6bd2498fd3242cb6ab35362cefc

If I set prefer_use_gl_clear = false, then everything works ok.
Project Member

Comment 13 by bugdroid1@chromium.org, Sep 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7e86b9953779635b568e94d17deb5d4e2ab85287

commit 7e86b9953779635b568e94d17deb5d4e2ab85287
Author: Christopher Cameron <ccameron@chromium.org>
Date: Fri Sep 21 08:41:15 2018

Limit prefering glClear for clearing textures to macOS

This behavior only helps on macOS and hits lots of bugs on lots of other
platforms.

Bug:  883276 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I7b85b254c962003cf1fa5646d8a304ce04aa856a
Reviewed-on: https://chromium-review.googlesource.com/1236930
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: ccameron <ccameron@chromium.org>
Cr-Commit-Position: refs/heads/master@{#593121}
[modify] https://crrev.com/7e86b9953779635b568e94d17deb5d4e2ab85287/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/7e86b9953779635b568e94d17deb5d4e2ab85287/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc

Labels: Merge-Request-70
Adding merge request for 70 (I assume we're way too late for 69).
Project Member

Comment 15 by sheriffbot@chromium.org, Sep 21

Labels: -Merge-Request-70 Merge-Review-70 Hotlist-Merge-Review
This bug requires manual review: M70 has already been promoted to the beta branch, so this requires manual review
Please contact the milestone owner if you have questions.
Owners: benmason@(Android), kariahda@(iOS), geohsu@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: benmason@chromium.org
NextAction: 2018-09-24
This has not yet made it to canary. Let's review on Monday.
The NextAction date has arrived: 2018-09-24
"However, this only is broken for gpu rasterization and not oop rasterization, so far as I can tell.  The above users have oop rasterization disabled in their gpu info, so it's definitely off.  Additionally, disabling gpu rasterization entirely and using software rasterization also fixes this.  It's very curious." 

It helped me. Thank you. I wish you luck wicth bug fixing.
 Issue 888345  has been merged into this issue.
Cc: chelamcherla@chromium.org
 Issue 882093  has been merged into this issue.
Labels: -Hotlist-Merge-Review -Merge-Review-70 Merge-Approved-70
Approved for merge to 70, branch 3538.
Project Member

Comment 22 by bugdroid1@chromium.org, Sep 24

Labels: merge-merged-3558
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/71487e59e39ba4139b002e165bfcbbf9dd555a92

commit 71487e59e39ba4139b002e165bfcbbf9dd555a92
Author: Christopher Cameron <ccameron@chromium.org>
Date: Mon Sep 24 22:25:01 2018

Limit prefering glClear for clearing textures to macOS

This behavior only helps on macOS and hits lots of bugs on lots of other
platforms.

TBR=ccameron@chromium.org

(cherry picked from commit 7e86b9953779635b568e94d17deb5d4e2ab85287)

Bug:  883276 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I7b85b254c962003cf1fa5646d8a304ce04aa856a
Reviewed-on: https://chromium-review.googlesource.com/1236930
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: ccameron <ccameron@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#593121}
Reviewed-on: https://chromium-review.googlesource.com/1241767
Reviewed-by: ccameron <ccameron@chromium.org>
Cr-Commit-Position: refs/branch-heads/3558@{#4}
Cr-Branched-From: 6afac0314ce61cca7fc900430635233932547f72-refs/heads/master@{#593042}
[modify] https://crrev.com/71487e59e39ba4139b002e165bfcbbf9dd555a92/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/71487e59e39ba4139b002e165bfcbbf9dd555a92/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc

Hello,

I filed

https://bugs.chromium.org/p/chromium/issues/detail?id=888345

that's been merged into this one.

Do you think this fix is going to help with 888345 as well (where the "messed up" visuals look somewhat different)?

Cc: ccameron@chromium.org
 Issue 888442  has been merged into this issue.
Status: Fixed (was: Assigned)
Fixed in 70.
Re: comment #23.  I strongly suspect it will fix that as well.  If it doesn't, please file another bug.
Project Member

Comment 27 by sheriffbot@chromium.org, Sep 28

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Merge-Approved-70 -merge-merged-3558
 Issue 892316  has been merged into this issue.
This change is *NOT* merged into M70.. It was merged into branch 3558 which was a daily M71 branch that hasn't gone anywhere.. 

The target was M70 which was 3538; although I think it is too late to merge.

 Issue 907559  was opened because it was still on M70.
I don't know how many users are affected (my partner is, so I'm biased) but this unfortunate mistake during the merge process IMO deserves a postmortem.
Would the comment in #27 not have been generated if I'd merged to the correct branch? (I assumed it was there because I hadn't put the merge-merged-3558 label).

I know that when one merges something to a release branch without approval, a warning is generated -- perhaps we should have some similar warning for merging into any branch? In that case, my merge in #22 would have triggered a warning.

Sign in to add a comment