Issue metadata
Sign in to add a comment
|
Pixel 2 Tech Specs page doesn't render correctly in Chrome Canary |
||||||||||||||||||||||
Issue descriptionChrome Version: 63.0.3231.0 (Official Build) canary (64-bit) OS: macOS 10.12.6 What steps will reproduce the problem? (1) Visit https://store.google.com/product/pixel_2_specs What is the expected result? Expect page to render legibly. What happens instead? Something's not rendering correctly; some images and layers are in the wrong places. See attached screenshot for just one example. about:gpu follows (MacBook Pro with NVIDIA GPU). Graphics Feature Status Canvas: Hardware accelerated CheckerImaging: Enabled 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 WebGL: Hardware accelerated WebGL2: Hardware accelerated Driver Bug Workarounds add_and_true_to_loop_condition adjust_src_dst_region_for_blitframebuffer avoid_stencil_buffers decode_encode_srgb_for_generatemipmap disable_framebuffer_cmaa disable_webgl_rgb_multisampling_usage emulate_abs_int_function get_frag_data_info_bug init_two_cube_map_levels_before_copyteximage msaa_is_slow pack_parameters_workaround_with_pack_buffer rebind_transform_feedback_before_resume regenerate_struct_names remove_invariant_and_centroid_for_essl3 reset_teximage2d_base_level rewrite_texelfetchoffset_to_texelfetch 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_image_height_workaround_with_unpack_buffer use_intermediary_for_copy_texture_image use_unused_standard_shared_blocks Problems Detected 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 On Intel GPUs MSAA performance is not acceptable for GPU rasterization: 527565 Applied Workarounds: msaa_is_slow 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 Multisample renderbuffers with format GL_RGB8 have performance issues on Intel GPUs.: 607130 Applied Workarounds: disable_webgl_rgb_multisampling_usage 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 glResumeTransformFeedback works incorrectly on Intel GPUs: 638514 Applied Workarounds: rebind_transform_feedback_before_resume Result of abs(i) where i is an integer in vertex shader is wrong: 642227 Applied Workarounds: emulate_abs_int_function Rewrite texelFetchOffset to texelFetch for Intel Mac: 642605 Applied Workarounds: rewrite_texelfetchoffset_to_texelfetch Rewrite condition in for and while loops for Intel Mac: 644669 Applied Workarounds: add_and_true_to_loop_condition Decode and encode before generateMipmap for srgb format textures on macosx: 634519 Applied Workarounds: decode_encode_srgb_for_generatemipmap Init first two levels before CopyTexImage2D for cube map texture on Intel Mac 10.12: 648197 Applied Workarounds: init_two_cube_map_levels_before_copyteximage Insert statements to reference all members in unused std140/shared blocks on Mac: 618464 Applied Workarounds: use_unused_standard_shared_blocks Tex(Sub)Image3D performs incorrectly when uploading from unpack buffer with GL_UNPACK_IMAGE_HEIGHT greater than zero on Intel Macs: 654258 Applied Workarounds: unpack_image_height_workaround_with_unpack_buffer adjust src/dst region if blitting pixels outside read framebuffer on Mac: 644740 Applied Workarounds: adjust_src_dst_region_for_blitframebuffer Mac driver GL 4.1 requires invariant and centroid to match between shaders: 639760, 641129 Applied Workarounds: remove_invariant_and_centroid_for_essl3 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) Certain Apple devices leak stencil buffers: 713854 Applied Workarounds: avoid_stencil_buffers Reset TexImage2D base level to 0 on Intel Mac 10.12.4: 705865 Applied Workarounds: reset_teximage2d_base_level Version Information Data exported 10/4/2017, 10:38:12 AM Chrome version Chrome/63.0.3231.0 Operating system Mac OS X 10.12.6 Software rendering list version 13.12 Driver bug list version 10.31 ANGLE commit id db3422764a9b 2D graphics backend Skia/63 b30d11319bac8bb7a528b6da5ddd13ac9db26996- Command Line /Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary --flag-switches-begin --enable-features=OmniboxUIExperimentNarrowDropdown,OmniboxUIExperimentShowSuggestionFavicons,OmniboxUIExperimentVerticalMargin,WebAssembly --flag-switches-end Driver Information Initialization time 163 In-process GPU false Passthrough Command Decoder false Supports overlays false Sandboxed true GPU0 VENDOR = 0x10de, DEVICE= 0x0fe9 *ACTIVE* GPU1 VENDOR = 0x8086, DEVICE= 0x0d26 Optimus true Optimus true AMD switchable false Driver vendor Driver version 10.17.5 355.10.05.45f01 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.17.5 355.10.05.45f01 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 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 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 R_16 Software only RG_88 Software only BGR_565 Software only RGBA_4444 Software only RGBX_8888 Software only RGBA_8888 GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE BGRX_8888 GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE BGRA_8888 GPU_READ, SCANOUT, SCANOUT_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE, GPU_READ_CPU_READ_WRITE_PERSISTENT RGBA_F16 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
,
Oct 4 2017
Reliably bisects to https://chromium.googlesource.com/chromium/src/+log/5738043de6fdc66517cbb09e98da8c4aa76be6c2..d62e3b119487bc01b1794991b59b78c60a684212 The most compelling candidate for revert is https://chromium.googlesource.com/chromium/src/+/34de07a7da1921205306d2f6299187dcddd42d2d I'm going to revert locally just to verify.
,
Oct 4 2017
Hmm, could be due to some part of the stylesheet not being parsed correctly. I'll take a look in about two hours.
,
Oct 4 2017
Given it didn't break any of our tests, I would lean toward a complex selector or other things that arise in a large complex page rather than small test cases. The particular broken contents also points strongly toward animated transforms combined with positioning. If it's not something you can fix in a day or so I would argue for revert now and ask questions later. And thanks for landing it in a way that makes revert even possible.
,
Oct 4 2017
Cool, hopefully it'll be easy to track down since we've got a reliable repro. I'll try to come up with a fix today; if I can't, I'll land a revert tonight.
,
Oct 4 2017
Looks like the pixel 2 website has stuff like
.foo { @extends blah; }
which triggered the bug. Removing them seems to fix the issue.
Minimized test case:
.A:before{content:"fail";}
.fail{@a}
.A:before{content:"pass";}
I think I'll have a fix by the end of today.
P.S. What is @extends? I don't think this is standardized?
,
Oct 5 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b8fe810ac5d111f0a0058e62886eec20ce6694a7 commit b8fe810ac5d111f0a0058e62886eec20ce6694a7 Author: Darren Shen <shend@chromium.org> Date: Thu Oct 05 03:54:13 2017 [CSSParser] Fix handling of unterminated @rules in a declaration block. Currently, when we encounter something like: .a { @extends } We would consume up the '}', expecting a semicolon. We then erroneously consume '}' thinking that it's a ';', which would cause the next rule to be parsed incorrectly. This patch fixes this issue by only consuming if it is a ';'. We also add DCHECK to ensure that we never consume a '}' to catch these errors in the future. I also manually tested this on the pixel 2 page which has this issue (see bug) and it seems to work fine. Bug: 771679 Change-Id: Idbe014f76e32af60af0c18fdcac9d68e95bcfa2c Reviewed-on: https://chromium-review.googlesource.com/701894 Reviewed-by: nainar <nainar@chromium.org> Reviewed-by: meade_UTC10 <meade@chromium.org> Commit-Queue: Darren Shen <shend@chromium.org> Cr-Commit-Position: refs/heads/master@{#506633} [add] https://crrev.com/b8fe810ac5d111f0a0058e62886eec20ce6694a7/third_party/WebKit/LayoutTests/css-parser/unterminated-rules.html [modify] https://crrev.com/b8fe810ac5d111f0a0058e62886eec20ce6694a7/third_party/WebKit/Source/core/css/parser/CSSParserImpl.cpp [modify] https://crrev.com/b8fe810ac5d111f0a0058e62886eec20ce6694a7/third_party/WebKit/Source/core/css/parser/CSSParserTokenStream.h
,
Oct 5 2017
Issue 771917 has been merged into this issue.
,
Oct 5 2017
,
Oct 5 2017
Appears to be fixed on trunk. Please re-open if this is still broken on Canary next week. |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by schenney@chromium.org
, Oct 4 2017