Issue metadata
Sign in to add a comment
|
Weird emboldened SVGs and fonts => 80px size on Chrome 56 on Mac (OK on Chrome =< 55)
Reported by
a...@twardoch.com,
Mar 5 2017
|
||||||||||||||||||||||||
Issue descriptionChrome Version : 56.0.2924.87 URLs (if applicable) : https://fontlab.com/vi https://github.com/fonttools/fonttools/pull/867 OS version : 10.12.3 Something very weird has happened with Chrome 56.0.2924.87 (64-bit) on my macOS 10.12.3. Many SVG icons and quite a few webfonts started exhibiting a strange rendering problem, which could be called "artificial emboldening". The problem does not occur on Chrome 55.0.2883.75 or other older versions such as 49, 50, 51, ..., 54. For SVG icons, the problem occurs on my own website https://fontlab.com/vi but also on github.com. For webfonts, it seems to affect texts where font-size is set to >=80px. I also have Chrome Canary 58.0.3029.0 installed. On all browsers, chrome://flags are set to the default state. On Chrome Canary, github.com does not exhibit the problem, but fontlab.com/vi exhibits very weird problems. 1. Screen recording of problem appearing in Chrome 56 when font-size >=80: http://recordit.co/0yOix75cG5 2. Screenshots attached of https://fontlab.com/vi and https://github.com/fonttools/fonttools/pull/867 as rendered in Chrome 55 and Chrome 56, plus https://fontlab.com/vi as rendered in Chrome Canary 58. chrome://gpu/ 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: Enabled Native GpuMemoryBuffers: Hardware accelerated Rasterization: Hardware accelerated Video Decode: Hardware accelerated Video Encode: Hardware accelerated VPx Video Decode: Hardware accelerated WebGL: Hardware accelerated Driver Bug Workarounds disable_framebuffer_cmaa disable_multimonitor_multisampling get_frag_data_info_bug needs_offscreen_buffer_workaround pack_parameters_workaround_with_pack_buffer regenerate_struct_names scalarize_vec_and_mat_constructor_args set_zero_level_before_generating_mipmap unfold_short_circuit_as_ternary_operation unpack_alignment_workaround_with_unpack_buffer unpack_overlapping_rows_separately_unpack_buffer use_intermediary_for_copy_texture_image use_shadowed_tex_level_params Problems Detected Work around a bug in offscreen buffers on NVIDIA GPUs on Macs: 89557 Applied Workarounds: needs_offscreen_buffer_workaround Multisampling is buggy on OSX when multiple monitors are connected: 237931 Applied Workarounds: disable_multimonitor_multisampling Unfold short circuit on Mac OS X: 307751 Applied Workarounds: unfold_short_circuit_as_ternary_operation Always rewrite vec/mat constructors to be consistent: 398694 Applied Workarounds: scalarize_vec_and_mat_constructor_args Mac drivers handle struct scopes incorrectly: 403957 Applied Workarounds: regenerate_struct_names glGenerateMipmap fails if the zero texture level is not set on some Mac drivers: 560499 Applied Workarounds: set_zero_level_before_generating_mipmap Pack parameters work incorrectly with pack buffer bound: 563714 Applied Workarounds: pack_parameters_workaround_with_pack_buffer Alignment works incorrectly with unpack buffer bound: 563714 Applied Workarounds: unpack_alignment_workaround_with_unpack_buffer copyTexImage2D fails when reading from IOSurface on multiple GPU types.: 581777 Applied Workarounds: use_intermediary_for_copy_texture_image Unpacking overlapping rows from unpack buffers is unstable on NVIDIA GL driver: 596774 Applied Workarounds: unpack_overlapping_rows_separately_unpack_buffer Mac Drivers store texture level parameters on int16_t that overflow: 610153 Applied Workarounds: use_shadowed_tex_level_params Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198 Applied Workarounds: disable_framebuffer_cmaa glGetFragData{Location|Index} works incorrectly on Max: 638340 Applied Workarounds: get_frag_data_info_bug Version Information Data exported 05/03/2017, 23:20:36 Chrome version Chrome/55.0.2883.75 Operating system Mac OS X 10.12.3 Software rendering list version 11.17 Driver bug list version 9.15 ANGLE commit id 4d208abb1926 2D graphics backend Skia/55 d1740f81c843c65acd58d1b571ce94b90fee99d0 Command Line Args Chrome.app/Contents/MacOS/Google Chrome --flag-switches-begin --flag-switches-end Driver Information Initialization time 83 In-process GPU false Sandboxed true GPU0 VENDOR = 0x10de, DEVICE= 0x0fe9 *ACTIVE* GPU1 VENDOR = 0x8086, DEVICE= 0x0d26 Optimus true AMD switchable false Driver vendor Driver version 10.14.20 355.10.05.15f03 Driver date Pixel shader version 4.10 Vertex shader version 4.10 Max. MSAA samples 8 Machine model name MacBookPro Machine model version 11.3 GL_VENDOR NVIDIA Corporation GL_RENDERER NVIDIA GeForce GT 750M OpenGL Engine GL_VERSION 4.1 NVIDIA-10.14.20 355.10.05.15f03 GL_EXTENSIONS GL_ARB_blend_func_extended GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_ES2_compatibility GL_ARB_explicit_attrib_location GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader5 GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_occlusion_query2 GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_separate_shader_objects GL_ARB_shader_bit_encoding GL_ARB_shader_subroutine GL_ARB_shading_language_include GL_ARB_tessellation_shader GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_cube_map_array GL_ARB_texture_gather GL_ARB_texture_query_lod GL_ARB_texture_rgb10_a2ui GL_ARB_texture_storage GL_ARB_texture_swizzle GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_vertex_attrib_64bit GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_depth_bounds_test GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic GL_EXT_texture_mirror_clamp GL_EXT_texture_sRGB_decode GL_APPLE_client_storage GL_APPLE_container_object_shareable GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_texture_range GL_ATI_texture_mirror_once GL_NV_texture_barrier Disabled Extensions Window system binding vendor Window system binding version Window system binding extensions Direct rendering Yes Reset notification strategy 0x0000 GPU process crash count 0 Compositor Information Tile Update Mode Zero-copy Partial Raster Enabled GpuMemoryBuffers Status ATC Software only ATCIA Software only DXT1 Software only DXT5 Software only ETC1 Software only R_8 GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT RG_88 Software only BGR_565 Software only RGBA_4444 Software only RGBX_8888 Software only RGBA_8888 GPU_READ, SCANOUT BGRX_8888 GPU_READ, SCANOUT BGRA_8888 GPU_READ, SCANOUT, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT YVU_420 Software only YUV_420_BIPLANAR GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT UYVY_422 GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT
,
Mar 5 2017
,
Mar 6 2017
,
Mar 6 2017
Suspecting GPU rasterization (reporter could try disabling it to verify.)
,
Mar 6 2017
Unable to reproduce the issue in Mac 10.12.3 using chrome reported version #56.0.2924.87 and latest canary #59.0.3030.0. Steps followed to reproduce the issue are as follows: ----------- 1. Navigated to URL : https://www.fontlab.com/font-editor/fontlab-vi/ (from comment #1) 2. Inspected the product title. 3. Expanded the font size till >=80. 4. Observed that the font did not get bold on increasing the font size >=80. Attaching screen cast for reference. Reporter@ - Could you please check this issue on latest canary #59.0.3030.0 by creating a new profile without any apps and extensions and please let us know if the issue still persist or not. Thanks...!!
,
Mar 8 2017
Same problem using macOS 10.12.3 and Chrome 56.0.2924.87. Reboot fixes it for some time, but after an hour or two of work, the issue reproduces again.
,
Mar 8 2017
What happens if you disable GPU rasterize? You can do that in chrome://flags. Something that starts after some time running suggests it's a failure somewhere, maybe even in the OS, to clear some bit of information when buffers are discarded and reused.
,
Mar 8 2017
When I go to chrome://flags and disable "GPU rasterisation" then the problem **goes away** (so disabling GPU rasterization corrects the problem indeed).
,
Mar 8 2017
Jim, do you think this could be a rendering difference from falling back to path drawing when the text is large? That wouldn't explain #6 but perhaps that is something else.
,
Mar 8 2017
Thank you for providing more feedback. Adding requester "krajshree@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
,
Mar 8 2017
It looks like something is going awry with distance field text and paths. For text, DFs kick in around 162 point, which is effectively what we treat it as when using 81+ point on a Retina display. Icons like on Github can use distance fields as well. There were fixes done to distance field paths in M57 and M58, so that may explain why the path issues don't duplicate in the canary. That said, I'd like to know whether the text issues also duplicate in the latest canary. As far as the cause, there's a lot of text and paths on the fontlab page, so maybe the texture atlases are getting into a bad state somehow after multiple spills.
,
Mar 8 2017
Ps. and then when I enable GPU rasterization, the problem appears, and when I disable, it disappears. Also, it's "good" that another reporter has confirmed the problem on their machine. I do tend to have lots of custom fonts installed. In Google Chrome Beta 57.0.2987.88, the effects of having GPU rasterization on are even more detrimental! Below are screenshots from Chrome Beta 57 of https://www.fontlab.com/font-editor/fontlab-vi/ with GPU rasterization on, then off.
,
Mar 8 2017
As I reported previously, with Version 59.0.3035.0 (Official Build) canary (64-bit), the effects when GPU rasterization is ON are even worse than in 56 or 57 (all images gone, some weird lines). Regarding some fonts or SVGs, sometimes they are rendered with these "thick" borders, and sometimes not at all. When I disable GPU rasterization in Canary 59, all is OK. I have tested this with my default "Person" as well as with a freshly-created "Blank" "Person" that loads no extensions. That makes no difference: same problems appear with GPU on and disappear with GPU off.
,
Mar 8 2017
With 59.0.3035.0, does it happen immediately or do you have to do something to put it in that weird state?
,
Mar 8 2017
I can make it more specific now. With "GPU rasterization enabled": * Chrome 55: all is fine * Chrome 56: fonts and SVGs are rendered with "thick borders" * Chrome 57 Beta: fonts and SVGs are not rendered, many images are missing * Chrome 59 Canary: same as 57 but also weird lines appear With GPU rasterization disabled, all versions render everything correctly. One bit of trivia is that I have the Nvidia CUDA driver 8.0.63 installed (no idea if this makes any effect).
,
Mar 8 2017
Sounds like it might be related to the NVIDIA GPU. I'm using the Intel integrated GPU on my MacBook so I suspect that's why I can't see it.
,
Mar 8 2017
Thanks for the very detailed report. Interestingly, I can't reproduce on my nVidia mac (GT 650M), but it looks like you have a GT 750, so that may be the issue. It's also interesting that orlicus@ can only repro after a certain amount of time - adam@, it sounds like you can always repro? Does the issue persist if you reboot and open Chrome with nothing else running? I'll try installing Cuda and see if that makes a difference.
,
Mar 8 2017
jvanverth@, I'm using integrated GPU as well (Intel Iris Graphics 540).
,
Mar 8 2017
On the same computer, when I'm using a "virgin" user account (administrator), without any extra software running in the background, the problem does NOT appear, even with GPU rasterization enabled.
,
Mar 9 2017
,
Mar 9 2017
adam@, just to confirm, when you go back to your account, the issues still repro (it's not just an issue of the log-in/log-out fixing it)?
,
Mar 9 2017
It also might be interesting to try in incognito mode on the usual account as extensions don't normally run in that mode.
,
Mar 9 2017
Restarting the computer, logging in and out of my primary macOS user account ("adam", with admin rights), cleaning the Chrome cache, using a different (virgin) Chrome "Person" and using incognito mode — that all makes no difference. The problems still exist, in all three tested versions (56, 57, 59).
But with a virgin macOS user account on the same machine ("admin"), the problem does NOT appear.
In my "adam" account, I have a fair number of developer-type apps and system tweaks (lots of stuff installed via Homebrew, the Nvidia CUDA drivers, Xcode, Qt etc.). But my "admin" and "adam" accounts use the same stuff in /System/Library and /Library, so that shouldn't be it.
As long as you don't ask me to remove some 50 components one by one and reboot each time, I'll be glad to help track down the problem. :)
As I said, the problems appear on my "adam" macOS user account (my primary account) but not on "admin" (a "virgin" account). I could supply some log files or dumps or whatever showing the differences between Chrome running on those two, but I'd need some pointers. :)
,
Mar 27 2017
,
Apr 1 2017
I can repro this issue on two machines, and it's most obvious with this page:
data:text/html,<body style="font-size: 120px; -webkit-font-smoothing:none">Hello.
Machine 1: MacBook Pro (Retina, 15-inch, Late 2013) 2.6 GHz Intel Core i7
Machine 2: MacBook Pro (15-inch, 2016) 2.9GHz Intel Core i7
`-webkit-font-smoothing: none` starts looking blurry above 80px, which doesn't seem right. The problem goes away if I disable GPU rasterization. I initially noticed the issue on this page: https://be5invis.github.io/Iosevka/ — the subpixel AA looks wrong, there's slight fringing around the letters. Also, subpixel AA is off between 24px and 80px, but turns back on above 80px.
,
Apr 1 2017
After looking over the screenshots, I realize that the original issue is much more serious — but they're triggered under similar conditions. If what I described above turns out to be unrelated, let me know and I'll fork it into a separate bug.
,
Apr 3 2017
+bsalomon@chromium.org - FYI, this looks like a potential text issue w/ GPU rasterization. Have you seen things like this in the past?
,
Apr 3 2017
I haven't seen this. Jim can probably confirm, but I believe we have two size thresholds. At the first size threshold SDF text kicks in and at the second drawing glyphs one at a time as paths kicks in. I'm guessing that SDF kicks in inappropriately when antialiasing is disabled.
,
Apr 3 2017
ah, I see you already commented on this Brian, sorry for the double-add. sdy@, I'm not sure if this is the same issue (although I agree it could be related). adam@ - are you still seeing the widespread visual corruption on M57 stable? If so, can you check if your about:gpu has any errors at the bottom? Thanks!
,
Apr 3 2017
Yes, still massive problems! Chrome 57.0.2987.133 (64-bit) on macOS 10.12.4 (16E195) 1. With "GPU rasterization" disabled, all is fine 2. With "GPU rasterization" disabled, things happen. For example, visiting this very thread ( https://bugs.chromium.org/p/chromium/issues/detail?id=698609 ) results in action like you can see here (and attached PNG): http://recordit.co/whpXKtZPq3 Same problems as previously reported on https://www.fontlab.com/font-editor/fontlab-vi/ (texts using webfonts and also SVGs oddly missing). I get lots of error messages in chrome://gpu, as per: [8117:775:0403/222709.793562:ERROR:gles2_cmd_decoder.cc(9467)] : [.RenderWorker-0x7fb7a5061e00.GpuRasterization]GL ERROR :GL_INVALID_OPERATION : glUseProgram: program not linked [8117:775:0403/222709.793610:ERROR:gles2_cmd_decoder.cc(8951)] : [.RenderWorker-0x7fb7a5061e00.GpuRasterization]GL ERROR :GL_INVALID_OPERATION : glUniform4fv: unknown location [8117:775:0403/222709.883399:ERROR:gles2_cmd_decoder.cc(9467)] : [.RenderWorker-0x7fb7a5061e00.GpuRasterization]GL ERROR :GL_INVALID_OPERATION : glUseProgram: program not linked [8117:775:0403/222709.883968:ERROR:gles2_cmd_decoder.cc(9467)] : [.RenderWorker-0x7fb7a5061e00.GpuRasterization]GL ERROR :GL_INVALID_OPERATION : glUseProgram: program not linked I'm including a complete dump as about-gpu.html
,
Apr 3 2017
Thanks for the info - I'm have an NVidia GT750 mac (matching adam@'s mac) coming in tomorrow - I'll try to debug further then.
,
Apr 3 2017
adam@, quick follow-up - do you have any flags set (other than, I'm guessing, disabling GPU rasterization) in about:flags? Or are you passing any custom command line args to Chrome? Thanks!
,
Apr 3 2017
I have reset the flags to default settings several times, including now. Also, no custom command line args. Some extensions, yes, but I've launched Chrome previously in both incognito and with a different user profile (no extensions then), and that consistently produces the same problems.
,
Apr 3 2017
(So yeah, the only mod I've done was to disable GPU rasterization :) )
,
Apr 7 2017
To add my two cents: there is a similar SVG rendering issue in Electron, which is a framework that builds on Chromium: https://github.com/electron/electron/issues/8670. The SVG issue does not occur when the macOS system language is set to English, but is constantly reproducible with other system languages.
,
Apr 8 2017
adam@, re #35, is your system running with an English (en_US) locale? This might help explain why we're having trouble pinning this down.
,
Apr 8 2017
My locale is likely to be sumthin weird like en_PL but from your point of view what exactly is the info you need? I'm experiencing the issues in both the heavily customized setup I use daily and the standard setup I have using a 2nd system account that doesn't run most extensions and tools.
,
Apr 14 2017
OK, I believe this is a locale issue - same problem as issue 711683 . Duplicating to that issue. Should be easy to fix - will keep you posted. |
|||||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||||
Comment 1 by a...@twardoch.com
, Mar 5 2017