Discontinuous glyph shapes in full resolution mode on S8
Reported by
pekka.j....@gmail.com,
Jul 19 2017
|
||||||||||
Issue descriptionExample URL: https://en.m.wikipedia.org/wiki/Chromium_(web_browser) Steps to reproduce the problem: 1. Check that WQHD+ (2960x1440) is active (Samsung Galaxy S8+) 2. Open Chrome and some site (Wikipedia etc.) 3. Apply landscape mode What is the expected behavior? Text is normal. What went wrong? Some letters appear narrower or bolder than normally. Usually problem is at right side of screen. Does it occur on multiple sites: Yes Is it a problem with a plugin? No Did this work before? No Does this work in other browsers? Yes Chrome version: 59.0.3071.125 Channel: stable OS Version: 7 Flash Version: FHD+ mode (2220x1080) shows text ok. So it seems that problem is only with WQHD+. See screenshots.
,
Jul 27 2017
Can you point out what the problem is in the screenshot please?
,
Jul 27 2017
Take a closer look in that area I marked and compare it to full HD version. For example in a word "different": "d" is wider, "i" is thinner and two "f"'s are thicker.
,
Jul 27 2017
Thank you for providing more feedback. Adding requester "eae@chromium.org" to the cc list and removing "Needs-Feedback" label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Jul 31 2017
,
Jul 31 2017
Ben, can you take a look? There are some really unusual discontinuity artefacts within the glyph shapes on the right side of the screen, somehow looks like the glyph is painted from two different bitmaps, divided by a vertical or horizontal line.
,
Jul 31 2017
I did not know this but the S8 apparently runs in different resolution modes, compare https://www.androidcentral.com/understanding-galaxy-s8s-display-resolution-options - perhaps this interferes with how glyph bitmap sizes are computed?
,
Jul 31 2017
Really weird. I wonder if this has to do with the Android GL text renderer more than with Skia... Or does Chrome not use that on Android?
,
Jul 31 2017
,
Jul 31 2017
Perhaps this is a shader precision issue? I thought we always used highp for texture coords now, though.
,
Jul 31 2017
> I wonder if this has to do with the Android GL text renderer more than with Skia... Or does Chrome not use that on Android? Re #8, I don't think it does, it's all done internally through Skia and then composited by Chrome itself as well. It still may be an issue inside Chrome in font rasterization through GL/shaders.
,
Aug 1 2017
,
Aug 1 2017
I think I'm going to have to get a Galaxy S8 to fix this bug. There are different models with different GPUs. Could you post the contents of the chrome://gpu page from your S8 so I can be sure to get the right one?
,
Aug 1 2017
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 Rasterization: Hardware accelerated Video Decode: Hardware accelerated Video Encode: Software only, hardware acceleration unavailable WebGL: Hardware accelerated WebGL2: Hardware accelerated Driver Bug Workarounds clear_uniforms_before_first_program_use disable_framebuffer_cmaa max_texture_size_limit_4096 scalarize_vec_and_mat_constructor_args use_client_side_arrays_for_stream_buffers use_virtualized_gl_contexts Problems Detected MediaCodec is still too buggy to use for encoding (b/11536167): 615108 Disabled Features: accelerated_video_encode ARM driver doesn't like uploading lots of buffer data constantly Applied Workarounds: use_client_side_arrays_for_stream_buffers 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 Limit max texure size to 4096 on all of Android Applied Workarounds: max_texture_size_limit_4096 Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198 Applied Workarounds: disable_framebuffer_cmaa Disable KHR_blend_equation_advanced until cc shaders are updated: 661715 The Mali-Gxx driver does not guarantee flush ordering: 678508 Applied Workarounds: use_virtualized_gl_contexts 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 Version Information Data exported 8/1/2017, 8:11:09 PM Chrome version Chrome/59.0.3071.125 Operating system Android 7.0 Software rendering list version 13.8 Driver bug list version 10.102 ANGLE commit id a9042d3c1952 2D graphics backend Skia/59 ef6f9c65527412ec4057ea0551f2e051beb94d32 Command Line Args --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 --enable-longpress-drag-selection --touch-selection-strategy=direction --disable-gpu-process-crash-limit --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --ui-prioritize-in-gpu-process --profiler-timing=0 --prerender-from-omnibox=enabled --enable-dom-distiller --flag-switches-begin --flag-switches-end Driver Information Initialization time 236 In-process GPU false Passthrough Command Decoder false Supports overlays false Sandboxed false GPU0 VENDOR = 0x0000 [ARM], DEVICE= 0x0000 [Mali-G71] Optimus false Optimus false AMD switchable false Driver vendor Driver version 1. Driver date Pixel shader version 3.20 Vertex shader version 3.20 Max. MSAA samples 16 Machine model name SM-G955F Machine model version GL_VENDOR ARM GL_RENDERER Mali-G71 GL_VERSION OpenGL ES 3.2 v1.r3p0-00rel0.52a2c5ce14e045eb8b9074c171442f91 GL_EXTENSIONS 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_shader_non_constant_global_initializers 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_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 Disabled Extensions GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent 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 RG_88 Software only BGR_565 Software only RGBA_4444 Software only RGBX_8888 Software only RGBA_8888 Software only BGRX_8888 Software only BGRA_8888 Software only RGBA_F16 Software only YVU_420 Software only YUV_420_BIPLANAR Software only UYVY_422 Software only
,
Aug 1 2017
Thanks, I should have a repro device on Monday.
,
Aug 7 2017
I have a device and have a repro.
,
Aug 7 2017
The following revision refers to this bug: https://skia.googlesource.com/skia/+/95db9b3cb1286e2c88e12035fd96fd047ea3582d commit 95db9b3cb1286e2c88e12035fd96fd047ea3582d Author: Brian Salomon <bsalomon@google.com> Date: Mon Aug 07 19:51:30 2017 Make bmp text position attribute be highp Bug: chromium:746290 Change-Id: I90968ab3633fb50a13087500a7df7fb8adbf2af8 Reviewed-on: https://skia-review.googlesource.com/31423 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Brian Salomon <bsalomon@google.com> [modify] https://crrev.com/95db9b3cb1286e2c88e12035fd96fd047ea3582d/src/gpu/effects/GrBitmapTextGeoProc.cpp
,
Aug 8 2017
Nice! Thanks for the fix.
,
Aug 8 2017
|
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by dtapu...@chromium.org
, Jul 19 2017