New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 699566 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
OOO until 2019-01-24
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug


Sign in to add a comment

Epic Zen Garden issues

Project Member Reported by habl...@google.com, Mar 8 2017

Issue description

Chrome Version: (copy from chrome://version)
OS: Mac

What steps will reproduce the problem?
(1) goto https://s3.amazonaws.com/mozilla-games/ZenGarden/EpicZenGarden.html
(2) See bright overlay
(3) Clicks fullscreen and bright overlay is not there anymore (seems to be in the background)

======

about: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
WebGL2: Hardware accelerated
Driver Bug Workarounds
add_and_true_to_loop_condition
adjust_src_dst_region_for_blitframebuffer
decode_encode_srgb_for_generatemipmap
disable_framebuffer_cmaa
disable_multimonitor_multisampling
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_base_mipmap_level_before_texstorage
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
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
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
glTexStorage* are buggy when base mipmap level is not 0: 640506
Applied Workarounds: reset_base_mipmap_level_before_texstorage
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
Version Information
Data exported	3/8/2017, 4:40:23 PM
Chrome version	Chrome/59.0.3035.0
Operating system	Mac OS X 10.12.3
Software rendering list version	12.19
Driver bug list version	9.32
ANGLE commit id	05356e35d363
2D graphics backend	Skia/59 27bece831ddecfd33ee5fecd81ca9e6939b30e49
Command Line Args	Chrome Canary.app/Contents/MacOS/Google Chrome Canary --flag-switches-begin --disable-features=V8Future --flag-switches-end
Driver Information
Initialization time	55
In-process GPU	false
Passthrough Command Decoder	false
Sandboxed	true
GPU0	VENDOR = 0x8086, DEVICE= 0x0d26 *ACTIVE*
Optimus	false
Optimus	false
AMD switchable	false
Driver vendor	
Driver version	10.22.29
Driver date	
Pixel shader version	4.10
Vertex shader version	4.10
Max. MSAA samples	8
Machine model name	MacBookPro
Machine model version	11.2
GL_VENDOR	Intel Inc.
GL_RENDERER	Intel Iris Pro OpenGL Engine
GL_VERSION	4.1 INTEL-10.22.29
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_framebuffer_multisample_blit_scaled GL_EXT_texture_compression_s3tc GL_EXT_texture_filter_anisotropic 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
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
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
Log Messages
[54990:775:0308/163740.194653:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.194755:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.194771:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.194789:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.194802:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.194868:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.194910:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.194939:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.194963:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195018:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195052:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195088:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195117:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195151:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195197:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195222:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195239:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195256:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195272:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195286:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195299:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195311:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195333:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195348:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195375:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195408:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195439:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195487:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195525:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195556:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195586:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195614:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195698:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195741:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195775:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195808:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195837:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195869:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195886:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195906:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195936:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.195977:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203028:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203066:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203081:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203099:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203123:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203156:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203185:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203218:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203247:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203274:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203304:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203338:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203369:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203391:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203421:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203452:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203488:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203513:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203540:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203567:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203603:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203627:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203656:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203679:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203694:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203711:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203732:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203756:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203781:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203803:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203826:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203852:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203874:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203888:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203902:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203918:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203934:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203947:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.203999:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.204046:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.204075:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.
[54990:775:0308/163740.204105:ERROR:gles2_cmd_decoder.cc(9746)] : [.Offscreen-For-WebGL-0x7fa07a0af200]GL ERROR :GL_INVALID_OPERATION : glDrawElements: Source and destination textures of the draw are the same.

==============

 

Comment 1 by habl...@google.com, Mar 8 2017

Chrome: 59.0.3035.0 (Official Build) canary (64-bit)

My Nexus5x crashed when it loaded the page. Sadly, I don't have a crash ID.
Cc: ccameron@chromium.org
Labels: -Type-Bug -Pri-3 OS-Mac Pri-2 Type-Bug-Regression
Status: Available (was: Untriaged)
+ccameron: More canvas alpha issues on Mac

hablich: We noticed this as well. Thanks for filing. Pretty sure it is a regression.

This bug looks like a few bugs we've seen and fixed in the past, so I was surprised to see it even in 59. See issue 658789, and:
>  issue 666259 , but that should have been fixed in 57. Also similar to  issue 648466 , but that was fixed even earlier.

Comment 3 by kbr@chromium.org, Mar 8 2017

Blockedon: 581777
Cc: erikc...@chromium.org
Labels: -Pri-2 Pri-1
This actually seems to happen with all GPU types on macOS. Initially we thought it was only Intel GPUs.

The bug is probably related to handling of the alpha channel for WebGL-rendered canvases. Passing the command line argument --disable-features=WebGLImageChromium, and falling back to the canvas compositing path which renders to a regular 2D texture instead of an IOSurface, works around the problem.

Using the new breakpoint on canvas context creation (thanks to the DevTools team -- under "Event Listener Breakpoints" -> "Canvas" -> "Create canvas context", I was able to see the context creation attributes:

  antialias: false
  alpha: false
  depth: true
  stencil: true

The bug must be in the handling of the alpha:false flag when the WebGL canvas is in its own CALayer. I would have thought that maybe the demo was using the premultipliedAlpha flag, but it isn't.

To clarify the issue, which isn't clear from the original post.

With WebGLImageChromium turned off, there is no bright overlay [regardless of fullscreen].
With WebGLImageChromium turned on, there is a bright overlay in non-fullscreen.

The bright overlay is the bug, not the correct behavior.
Adding the lines:
"""
 345     attachColorBufferToReadFramebuffer();                                       
 346     m_stateRestorer->setClearStateDirty();                                      
 347     m_gl->ClearColor(0, 0, 0, 1);                                               
 348     m_gl->ColorMask(false, false, false, true);                                 
 349     m_gl->Clear(GL_COLOR_BUFFER_BIT);   
"""
to DrawingBuffer::finishPrepareTextureMailboxGpu right after 
"""
if (m_preserveDrawingBuffer == Discard) {
"""
https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp?type=cs&q=drawingbuffer.cpp+package:%5Echromium$&l=341

fixes the problem. This means that something is modifying the alpha channel of the RGB-emulated IOSurface.
With bajones's help earlier I tried to download a frame of the render - and I got a totally transparent PNG. Maybe there was something wrong with the capture, don't know.

#3: I tried playing with the parameters a bit; changing premultipliedAlpha to true or false didn't do anything.

#5: Good to know. See also https://codereview.chromium.org/2535173002/ ; maybe I missed a case in that fix?

I'll attach a zip of the whole thing in case it's helpful to edit the JS.

Comment 8 by kbr@chromium.org, Mar 9 2017

Thanks erikchen@ and kainino@ for your analyses.

Thinking about this more -- the app is probably doing its own antialiasing, given that it sets "antialias:false" in the context creation attributes. I would guess that it's populating the default WebGL back buffer using BlitFramebuffer from one of its own render targets. Re-reading the spec, this API call bypasses the color mask setting. This may be how a non-1.0 alpha channel is getting set.

It's not clear to me how we can best optimize this. Reading CALayer's documentation, simply setting its isOpaque property to true probably doesn't do the right thing if its contents are set to an IOSurface which has an alpha channel and that alpha channel has any values < 1.0.

Maybe, in the end, the only way we can make this work in the alpha:false case when RGB IOSurface emulation is enabled is by watching for BlitFramebuffer calls to the default back buffer, and doing the clear of the alpha channel.

Sorry, it doesn't seem to serve up correctly with SimpleHTTPServer - I'm using http-server from npm. Maybe a gzip problem.

Played with some more context creation attributes. It doesn't seem to affect the problem, so I have no idea why we don't see this issue anywhere else currently.
Pre-empted by #8. kbr's hypothesis makes sense to me.
kbr: Your assessment on CALayer + opacity is correct.

It would take more code, but we could also set a dirty-bit when BlitFramebuffer is called, and only clear the alpha channel when someone attempts to read from the texture. This prevents us from hitting the clearing overhead multiple times on  repeated calls to BlitFramebuffer. By default I would advocate against this and only try this if we notice the overhead being a problem.

Comment 12 by kbr@chromium.org, Apr 12 2017

Owner: kbr@chromium.org
Status: Assigned (was: Available)

Comment 13 by kbr@chromium.org, Apr 13 2017

Cc: zmo@chromium.org kainino@chromium.org
 Issue 711116  has been merged into this issue.

Comment 14 by kbr@chromium.org, Apr 15 2017

Summary: Epic Zen Garden issues (was: EpicZenGarden issues)

Comment 15 by kbr@chromium.org, Apr 15 2017

Labels: -Restrict-View-Google

Comment 16 by kbr@chromium.org, Apr 15 2017

Labels: -Type-Bug-Regression Type-Bug
Not really a regression. Unrestricted the view, since there's nothing private in this report.

Comment 17 by kbr@chromium.org, Apr 15 2017

Labels: -Pri-1 Pri-2
I thought this would be a straightforward fix, but it turned up spec-level issues that need to be decided upon and resolved.

https://codereview.chromium.org/2822743003 is a work in progress which fixes the issue in Chromium, but it's not clear that this BlitFramebuffer call should work at all. It doesn't in Firefox.

A conformance test https://github.com/KhronosGroup/WebGL/pull/2368 was just uploaded, but Firefox rejects the BlitFramebuffer call it contains, and so does Chromium when run with --disable-features=WebGLImaegChromium . It even fails if the checks are commented out from GLES2DecoderImpl::DoBlitFramebufferCHROMIUM that would otherwise generate the error "src and dst formats differ for color", so it looks like the OpenGL driver is rejecting an attempt to resolve an RGBA8 renderbuffer to an RGB texture.

More study is needed. It's likely the WebGL 2.0 spec will have to be updated to tightly define this behavior and more conformance tests written. Additionally, it seems that the RGBA->RGB emulation currently being done needs to be enhanced to handle this case, since it's visible to the user whether an RGBA or RGB texture/surface is actually being used.

In the meantime, Epic seems to have updated their demo so it now renders correctly in Chrome. Therefore downgrading this to P2.

Comment 18 by kbr@chromium.org, Apr 19 2017

Status: Started (was: Assigned)
New conformance test:
https://github.com/KhronosGroup/WebGL/pull/2377

Fix in progress:
https://codereview.chromium.org/2831733003/
Project Member

Comment 19 by bugdroid1@chromium.org, Apr 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4

commit 3d4d5d7a9198bea6f0018a36fc6825637f9a12c4
Author: kbr <kbr@chromium.org>
Date: Sat Apr 22 02:09:03 2017

Fix blits from multisampled renderbuffers to alpha:false WebGL back buffer.

Blitting from a multisampled RGB8 renderbuffer to an alpha:false WebGL
back buffer is supposed to work, and from an RGBA8 renderbuffer is
supposed to not work. The emulation of IOSurface-backed RGB textures
using RGBA textures didn't handle this case.

Add BindTexImage2DWithInternalformatCHROMIUM to the command buffer to
allow internal format to be overridden; currently this is only
supported on macOS. Use this to bind a second texture to the IOSurface
and use it only for BlitFramebuffer calls from WebGL, fixing up the
alpha channel afterward.

Covered by new conformance test in
https://github.com/KhronosGroup/WebGL/pull/2377 .

BUG= 699566 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2831733003
Cr-Commit-Position: refs/heads/master@{#466523}

[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/GLES2/gl2chromium_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/GLES2/gl2extchromium.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/client/gles2_c_lib_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/client/gles2_implementation_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/client/gles2_interface_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/client/gles2_interface_stub_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/cmd_buffer_functions.txt
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/common/gles2_cmd_ids_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/ui/gl/gl_image.cc
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/ui/gl/gl_image.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/ui/gl/gl_image_io_surface.h
[modify] https://crrev.com/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4/ui/gl/gl_image_io_surface.mm

Comment 20 by kbr@chromium.org, Apr 23 2017

Status: Fixed (was: Started)
Project Member

Comment 21 by bugdroid1@chromium.org, Apr 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/efefc5f07998074ebaa5020fdfeb9639d0c1ca21

commit efefc5f07998074ebaa5020fdfeb9639d0c1ca21
Author: pkalinnikov <pkalinnikov@chromium.org>
Date: Mon Apr 24 16:23:34 2017

Revert of Fix blits from multisampled renderbuffers to alpha:false WebGL back buffer. (patchset #4 id:60001 of https://codereview.chromium.org/2831733003/ )

Reason for revert:
Reverting because 4 gpu_tests.context_lost_integration_test.ContextLostIntegrationTest.ContextLost_WebGLContextLost* tests
and GpuCrash_GPUProcessCrashesExactlyOncePerVisitToAboutGpuCrash crash on "Mac Retina Debug (AMD)" bot.

Original issue's description:
> Fix blits from multisampled renderbuffers to alpha:false WebGL back buffer.
>
> Blitting from a multisampled RGB8 renderbuffer to an alpha:false WebGL
> back buffer is supposed to work, and from an RGBA8 renderbuffer is
> supposed to not work. The emulation of IOSurface-backed RGB textures
> using RGBA textures didn't handle this case.
>
> Add BindTexImage2DWithInternalformatCHROMIUM to the command buffer to
> allow internal format to be overridden; currently this is only
> supported on macOS. Use this to bind a second texture to the IOSurface
> and use it only for BlitFramebuffer calls from WebGL, fixing up the
> alpha channel afterward.
>
> Covered by new conformance test in
> https://github.com/KhronosGroup/WebGL/pull/2377 .
>
> BUG= 699566 
> CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
>
> Review-Url: https://codereview.chromium.org/2831733003
> Cr-Commit-Position: refs/heads/master@{#466523}
> Committed: https://chromium.googlesource.com/chromium/src/+/3d4d5d7a9198bea6f0018a36fc6825637f9a12c4

TBR=zmo@chromium.org,ccameron@chromium.org,kbr@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG= 699566 

Review-Url: https://codereview.chromium.org/2841573002
Cr-Commit-Position: refs/heads/master@{#466644}

[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/GLES2/gl2chromium_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/GLES2/gl2extchromium.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/client/gles2_c_lib_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/client/gles2_implementation_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/client/gles2_interface_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/client/gles2_interface_stub_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/cmd_buffer_functions.txt
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/common/gles2_cmd_ids_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/ui/gl/gl_image.cc
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/ui/gl/gl_image.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/ui/gl/gl_image_io_surface.h
[modify] https://crrev.com/efefc5f07998074ebaa5020fdfeb9639d0c1ca21/ui/gl/gl_image_io_surface.mm

Comment 22 by kbr@chromium.org, Apr 24 2017

Blockedon: 714761

Comment 23 by kbr@chromium.org, Apr 24 2017

Status: Started (was: Fixed)
Re-opening because of revert above.

Project Member

Comment 24 by bugdroid1@chromium.org, Apr 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e90ed61ee27f039c110fea16425a723f82bdbaf9

commit e90ed61ee27f039c110fea16425a723f82bdbaf9
Author: kbr <kbr@chromium.org>
Date: Tue Apr 25 05:17:22 2017

Fix blits from multisampled renderbuffers to alpha:false WebGL back buffer.

(Re-land after fix to avoid deleting nonexistent textures.)

Blitting from a multisampled RGB8 renderbuffer to an alpha:false WebGL
back buffer is supposed to work, and from an RGBA8 renderbuffer is
supposed to not work. The emulation of IOSurface-backed RGB textures
using RGBA textures didn't handle this case.

Add BindTexImage2DWithInternalformatCHROMIUM to the command buffer to
allow internal format to be overridden; currently this is only
supported on macOS. Use this to bind a second texture to the IOSurface
and use it only for BlitFramebuffer calls from WebGL, fixing up the
alpha channel afterward.

Covered by new conformance test in
https://github.com/KhronosGroup/WebGL/pull/2377 .

BUG= 699566 
TBR=zmo@chromium.org,ccameron@chromium.org
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2838743002
Cr-Commit-Position: refs/heads/master@{#466878}

[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/content/test/gpu/gpu_tests/webgl2_conformance_expectations.py
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/GLES2/extensions/CHROMIUM/CHROMIUM_image.txt
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/GLES2/gl2chromium_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/GLES2/gl2extchromium.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/client/gles2_c_lib_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/client/gles2_cmd_helper_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/client/gles2_implementation_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/client/gles2_implementation_impl_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/client/gles2_implementation_unittest_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/client/gles2_interface_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/client/gles2_interface_stub_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/client/gles2_trace_implementation_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/cmd_buffer_functions.txt
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/common/gles2_cmd_format_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/common/gles2_cmd_format_test_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/common/gles2_cmd_ids_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/service/gles2_cmd_decoder_autogen.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers_autogen.cc
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/ui/gl/gl_image.cc
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/ui/gl/gl_image.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/ui/gl/gl_image_io_surface.h
[modify] https://crrev.com/e90ed61ee27f039c110fea16425a723f82bdbaf9/ui/gl/gl_image_io_surface.mm

Comment 25 by kbr@chromium.org, Apr 25 2017

Status: Fixed (was: Started)

Comment 26 by kbr@chromium.org, Apr 25 2017

Blocking: angleproject:2011

Comment 27 by kbr@chromium.org, May 4 2017

On request of a colleague at Apple I've filed Radar 31978831 about this to ask them to reconsider the behavior of GL_RGB type textures backed by IOSurfaces. erikchen@ had previously filed Radar 25691245 in  Issue 581777 , which was closed as "working as intended".

Comment 28 by kbr@chromium.org, Jul 19 2017

Blocking: 746069

Comment 29 by kbr@chromium.org, Aug 1 2017

Blocking: 751206

Comment 30 by kbr@chromium.org, Sep 13 2017

Blocking: 764824

Comment 31 by kbr@chromium.org, Sep 15 2017

Blocking: 765729
Blocking: 911176

Sign in to add a comment