Strong banding present in gradients
Reported by
mukhlesu...@gmail.com,
Apr 18 2017
|
||||||||
Issue descriptionExample URL: https://www.google.com/search?q=gradient&prmd=ibnv&source=lnms&tbm=isch&sa=X&ved=0ahUKEwi4r_2D-a3TAhUBjpQKHfPkB6wQ_AUICCgB Steps to reproduce the problem: 1. Open the url 2. Look on pictures 3. What is the expected behavior? View pictures properly What went wrong? All pictures rendering poorly. Does it occur on multiple sites: Yes Is it a problem with a plugin? No Did this work before? Yes 57 Does this work in other browsers? Yes Chrome version: 58.0.3029.70 Channel: beta OS Version: 58, 59 Flash Version: Somewhat related https://bugs.chromium.org/p/chromium/issues/detail?id=702571#c16 Chrome://GPU content Graphics Feature Status Canvas: Software only, hardware acceleration unavailable 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: Software only, hardware acceleration unavailable Video Decode: Hardware accelerated Video Encode: Software only, hardware acceleration unavailable VPx Video Decode: Hardware accelerated WebGL: Hardware accelerated WebGL2: Hardware accelerated Driver Bug Workarounds avda_dont_copy_pictures clear_uniforms_before_first_program_use disable_discard_framebuffer disable_es3_gl_context disable_framebuffer_cmaa disable_gl_rgb_format exit_on_context_lost max_copy_texture_chromium_size_262144 max_texture_size_limit_4096 scalarize_vec_and_mat_constructor_args surface_texture_cant_detach use_client_side_arrays_for_stream_buffers use_non_zero_size_for_client_side_stream_buffers Problems Detected MediaCodec is still too buggy to use for encoding (b/11536167): 615108 Disabled Features: accelerated_video_encode Blacklist GPU raster/canvas on all except known good GPUs and newer Android releases: 362779, 424970 Disabled Features: gpu_rasterization, accelerated_2d_canvas ARM driver doesn't like uploading lots of buffer data constantly Applied Workarounds: use_client_side_arrays_for_stream_buffers Mali-4xx drivers throw an error when a buffer object's size is set to 0: 231082 Applied Workarounds: use_non_zero_size_for_client_side_stream_buffers Framebuffer discarding causes flickering on old ARM drivers: 290876 Applied Workarounds: disable_discard_framebuffer Clear uniforms before first program use on all platforms: 124764, 349137 Applied Workarounds: clear_uniforms_before_first_program_use Mali-4xx support of EXT_multisampled_render_to_texture is buggy on Android < 4.3: 362435 Testing fences was broken on Mali ES2 drivers: 378691, 373360, 371530, 398964 Always rewrite vec/mat constructors to be consistent: 398694 Applied Workarounds: scalarize_vec_and_mat_constructor_args Framebuffer discarding causes corruption on Mali-4xx: 449488, 451230 Applied Workarounds: disable_discard_framebuffer Mali-4xx does not support GL_RGB format: 449150 Applied Workarounds: disable_gl_rgb_format Context lost recovery often fails on Mali-400/450 on Android.: 496438 Applied Workarounds: exit_on_context_lost CHROMIUM_copy_texture is slow on Mali pre-Lollipop: 498443 Applied Workarounds: max_copy_texture_chromium_size_262144 Limit max texure size to 4096 on all of Android Applied Workarounds: max_texture_size_limit_4096 Mali-4xx GPU on JB doesn't support DetachGLContext Applied Workarounds: surface_texture_cant_detach glEGLImageTargetTexture2DOES crashes on Mali-400: 610516 Applied Workarounds: avda_dont_copy_pictures Limited enabling of Chromium GL_INTEL_framebuffer_CMAA: 535198 Applied Workarounds: disable_framebuffer_cmaa ES3 support is unreliable on some older drivers: 657925 Applied Workarounds: disable_es3_gl_context Disable KHR_blend_equation_advanced until cc shaders are updated: 661715 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 4/18/2017, 5:57:15 PM Chrome version Chrome/58.0.3029.70 Operating system Android 4.2.2 Software rendering list version 12.20 Driver bug list version 9.36 ANGLE commit id 461d9a3060e3 2D graphics backend Skia/58 4c81ba6ba3a3270db809bf7d4c3bc782694a56a4 Command Line Args --use-mobile-user-agent --top-controls-show-threshold=0.5 --top-controls-hide-threshold=0.5 --disable-domain-reliability --use-mobile-user-agent --enable-pinch --enable-viewport --enable-overlay-scrollbar --validate-input-event-stream --disable-gpu-process-crash-limit --in-process-gpu --main-frame-resizes-are-orientation-changes --disable-composited-antialiasing --ui-prioritize-in-gpu-process --profiler-timing=0 --prerender-from-omnibox=enabled --disable-sync-types=Favicon Images --enable-dom-distiller --flag-switches-begin --flag-switches-end --disable-gpu-watchdog --disable-es3-gl-context --supports-dual-gpus=false --gpu-driver-bug-workarounds=2,7,19,21,23,24,41,56,58,74,78,88,90 --disable-gl-extensions=EGL_KHR_fence_sync GL_EXT_multisampled_render_to_texture GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent --gpu-vendor-id=0x0000 --gpu-device-id=0x0000 --gpu-driver-vendor --gpu-driver-version=0 --gpu-driver-date Driver Information Initialization time 14 In-process GPU true Passthrough Command Decoder false Sandboxed false GPU0 VENDOR = 0x0000 [ARM], DEVICE= 0x0000 [Mali-400 MP] Optimus false Optimus false AMD switchable false Driver vendor Driver version 0 Driver date Pixel shader version 1.00 Vertex shader version 1.00 Max. MSAA samples 4 Machine model name Symphony W68 Machine model version GL_VENDOR ARM GL_RENDERER Mali-400 MP GL_VERSION OpenGL ES 2.0 GL_EXTENSIONS GL_EXT_debug_marker GL_OES_texture_npot GL_OES_compressed_ETC1_RGB8_texture GL_OES_standard_derivatives GL_OES_EGL_image GL_OES_depth24 GL_ARM_rgba8 GL_ARM_mali_shader_binary GL_OES_depth_texture GL_OES_packed_depth_stencil GL_EXT_texture_format_BGRA8888 GL_EXT_blend_minmax GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_rgb8_rgba8 GL_EXT_multisampled_render_to_texture GL_EXT_discard_framebuffer GL_OES_get_program_binary GL_ARM_mali_program_binary GL_EXT_shader_texture_lod GL_EXT_robustness Disabled Extensions EGL_KHR_fence_sync GL_EXT_multisampled_render_to_texture 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 0x0000 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 YVU_420 Software only YUV_420_BIPLANAR Software only UYVY_422 Software only
,
Apr 19 2017
This sounds like an issue with a specific hardware config - this doesn't reproduce in general. You mentioned in issue 702571 #c16 that turning off chrome://flags/#enable-gpu-rasterization helps - does it help with this issue? That is, do the images look better with that flag disabled? +GPU since someone from graphics may be able to better diagnose this.
,
Apr 20 2017
I have discovered some info about chrome://flags/#enable-gpu-rasterization
Stable 57.0.2987.132:
Enable: do nothing ( issue 702571 )
Force-enabled for all layers: fix all issue
Beta 58.0.3029.82:
Enable: fix all issue
Force-enabled for all layers: same as above
Dev 59.0.3068.4:
Enable: do nothing (this issue)
Force-enabled for all layers: do nothing (this issue)
Canary 59:
Enable: do nothing (this issue)
Force-enabled for all layers: do nothing (this issue)
hardware info:
architecture: armv7-a
Soc: Mediatek MT6572
GPU: mali 400
android version: 4.2.2
it seems that Beta 58 already fix this problem but "gpu rasterization" needs to be enabled by default.
I believe this can be reproduced on any Chinese branded cheap (MT6572) android 4 device.
,
Apr 20 2017
Thank you for providing more feedback. Adding requester "bokan@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
,
Apr 20 2017
update on comment 3 Canary 59 --> Canary 60.0.3074.0 this issue may be reproducible on these device (this also include my device Symphony w68) https://en.wikipedia.org/wiki/List_of_devices_using_Mediatek_SoCs#MT6572
,
Apr 28 2017
Look like gpu raster having problem with particular hardware?
,
May 5 2017
,
May 5 2017
Maybe this is related to 4444 texture formats. It sounds like gpu raster fixes this and we should work towards turning that on by default on all pages.
,
May 5 2017
This a 512MB device, and uses RGBA4444 texture formats, which leads to banding. We recently enabled GPU raster on these devices, and in doing so made sure RGBA4444 was respected there too (hence force-enabled GPU raster still having the issue on M59). I think this is as-expected. The question is really whether the quality hit of RGBA4444 is worth the memory savings. +aelias@
,
May 5 2017
Well, that's always been debated, and so far we've made the call that we're so desperate for memory on these devices that it's worthwhile. This example is artificial, so it doesn't provide evidence that users are indeed harmed in practice by the quality hit. We'd need to see examples of popular websites with horrible-looking gradients instead to consider changing policy, I think.
,
May 5 2017
Speaking of popular websites, there's actually a broken dropshadow gradient in the top-right corner of that screenshot. But it looks weird enough I wonder if that one's actually a bug in Skia rather than inherent to 4444?
,
May 6 2017
update screenshot (please notice color change on 2) 1: https://m.facebook.com/login/ 2: https://github.com/zeit/pkg/blob/master/readme.md 3: https://github.com/login
,
May 7 2017
update on comment 3 46 or earlier version works fine (even if I disable gpu rasterization). 47 to 57, it seems that webpages and images are made with a lot of box.
,
May 11 2017
details hardware info
,
May 11 2018
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Jun 1 2018
This is WAI afaict but maybe we should add a about:flag to force 32bpp so advanced users who don't like the result of using 16bpp can override it. |
||||||||
►
Sign in to add a comment |
||||||||
Comment 1 by mukhlesu...@gmail.com
, Apr 18 2017