New issue
Advanced search Search tips

Issue 771679 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Mac
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Pixel 2 Tech Specs page doesn't render correctly in Chrome Canary

Project Member Reported by kbr@chromium.org, Oct 4 2017

Issue description

Chrome 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
 
Screen Shot 2017-10-04 at 10.36.48 AM.png
514 KB View Download
Labels: OS-Linux
Yep, it is all sorts of broken on trunk too. Bisect coming.
Components: -Blink>Paint Blink>CSS
Labels: -Type-Bug -Pri-2 RegressedIn-63 ReleaseBlock-Dev FoundIn-63 TargettedFor-63 Pri-1 Type-Bug-Regression
Owner: shend@chromium.org
Status: Assigned (was: Untriaged)
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.

Comment 3 by shend@chromium.org, 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.
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.

Comment 5 by shend@chromium.org, 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.

Comment 6 by shend@chromium.org, 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?
Project Member

Comment 7 by bugdroid1@chromium.org, 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

Comment 8 by shend@chromium.org, Oct 5 2017

Issue 771917 has been merged into this issue.

Comment 9 by shend@chromium.org, Oct 5 2017

Cc: shend@chromium.org
 Issue 772025  has been merged into this issue.
Status: Fixed (was: Assigned)
Appears to be fixed on trunk. Please re-open if this is still broken on Canary next week.

Sign in to add a comment