FPS Meter reports more FPS than Quartz Debug
Reported by
the.sp...@gmail.com,
Aug 3 2016
|
|||||||
Issue descriptionUserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2817.0 Safari/537.36 Steps to reproduce the problem: 1. Install Quartz Debug and run it 2. Run http://david.li/fluid/, select a number of particles that make the rendering go 40-50FPS, open DevTools and enable FPS Meter 3. Compare FPS reported by Quartz Debug and Chrome What is the expected behavior? The FPS reported by Quartz should be equal or bigger than the FPS reported by Chrome. What went wrong? FPS seems to be creating more frames (confirmed by other measurements, like calls to rAF) than OSX is displaying. Did this work before? No Chrome version: 54.0.2817.0 Channel: canary OS Version: OS X 10.9.5 Flash Version: First snapshot is Stable, second is Canary.
,
Aug 3 2016
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 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 validate_multisample_buffer_allocation Problems Detected There are display issues with GPU Raster on OSX 10.9: 611310 Disabled Features: gpu_rasterization 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 Multisampled renderbuffer allocation must be validated on some Macs: 290391 Applied Workarounds: validate_multisample_buffer_allocation 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 Version Information Data exported 8/3/2016, 9:51:25 PM Chrome version Chrome/54.0.2817.0 Operating system Mac OS X 10.9.5 Software rendering list version 11.9 Driver bug list version 8.80 ANGLE commit id 5655b849d8fe 2D graphics backend Skia/54 38d909ec2875f79952de08f36adfaac5680d2c53 Command Line Args Chrome Canary.app/Contents/MacOS/Google Chrome Canary --flag-switches-begin --allow-insecure-localhost --enable-devtools-experiments --enable-experimental-web-platform-features --enable-extension-action-redesign --enable-gpu-rasterization --javascript-harmony --enable-tab-audio-muting --enable-web-bluetooth --enable-wasm --enable-webgl-draft-extensions --enable-experimental-extension-apis --flag-switches-end Driver Information Initialization time 43 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 8.26.29 310.40.55f01 Driver date Pixel shader version 1.20 Vertex shader version 1.20 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 2.1 NVIDIA-8.26.29 310.40.55f01 GL_EXTENSIONS GL_ARB_color_buffer_float GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_instanced_arrays GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_seamless_cube_map GL_ARB_shader_objects GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_sync GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_transpose_matrix GL_ARB_vertex_array_bgra GL_ARB_vertex_blend GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_depth_bounds_test GL_EXT_draw_buffers2 GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_rectangle GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_APPLE_aux_depth_stencil GL_APPLE_client_storage GL_APPLE_element_array GL_APPLE_fence GL_APPLE_float_pixels GL_APPLE_flush_buffer_range GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_packed_pixels GL_APPLE_pixel_buffer GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_specular_vector GL_APPLE_texture_range GL_APPLE_transform_hint GL_APPLE_vertex_array_object GL_APPLE_vertex_array_range GL_APPLE_vertex_point_size GL_APPLE_vertex_program_evaluators GL_APPLE_ycbcr_422 GL_ATI_separate_stencil GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_ATI_texture_mirror_once GL_IBM_rasterpos_clip GL_NV_blend_square GL_NV_conditional_render GL_NV_depth_clamp GL_NV_fog_distance GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_light_max_exponent GL_NV_multisample_filter_hint GL_NV_point_sprite GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod 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 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
,
Aug 3 2016
Thanks. That's an NVIDIA based MacBook Pro Retina.
,
Aug 3 2016
Sorry, wait -- 10.9.5? I'm sorry, why are you not running 10.11? We don't test on older OSs on a regular basis.
,
Aug 3 2016
,
Aug 3 2016
Ok, I'm going to update to 10.11, run everything again and report back. It's going to take a while.
,
Aug 4 2016
I tried this on OS X 10.11.6, same GPU, same Chrome version, and saw no discrepancy between website's frame rate and Quartz Debug FPS meter. Try running Chrome with --show-mac-overlay-borders so that we know whether this is using the new overlays path.
,
Aug 4 2016
Just now updated to 10.11.6 Run tests again, I still see a difference. Tried with --show-mac-overlay-borders, I'm attaching a snapshot New 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: Software only. Hardware acceleration disabled Video Decode: Hardware accelerated Video Encode: Hardware accelerated WebGL: Hardware accelerated Driver Bug Workarounds disable_multimonitor_multisampling init_varyings_without_static_use 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 validate_multisample_buffer_allocation 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 Multisampled renderbuffer allocation must be validated on some Macs: 290391 Applied Workarounds: validate_multisample_buffer_allocation Unfold short circuit on Mac OS X: 307751 Applied Workarounds: unfold_short_circuit_as_ternary_operation Mac drivers handle varyings without static use incorrectly: 322760 Applied Workarounds: init_varyings_without_static_use 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 Accelerated rasterization has been disabled, either via blacklist, about:flags or the command line. Disabled Features: rasterization Version Information Data exported 8/4/2016, 3:34:51 AM Chrome version Chrome/52.0.2743.116 Operating system Mac OS X 10.11.6 Software rendering list version 11.7 Driver bug list version 8.78 ANGLE commit id f07246f6a06d 2D graphics backend Skia Command Line Args Chrome.app/Contents/MacOS/Google Chrome --flag-switches-begin --enable-devtools-experiments --mark-non-secure-as=non-secure --flag-switches-end Driver Information Initialization time 42 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.10.13 310.42.25f01 Driver date Pixel shader version 1.20 Vertex shader version 1.20 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 2.1 NVIDIA-10.10.13 310.42.25f01 GL_EXTENSIONS GL_ARB_color_buffer_float GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_draw_buffers GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_instanced_arrays GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_provoking_vertex GL_ARB_seamless_cube_map GL_ARB_shader_objects GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shadow GL_ARB_sync GL_ARB_texture_border_clamp GL_ARB_texture_compression GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_float GL_ARB_texture_mirrored_repeat GL_ARB_texture_non_power_of_two GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_transpose_matrix GL_ARB_vertex_array_bgra GL_ARB_vertex_blend GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_window_pos GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_clip_volume_hint GL_EXT_debug_label GL_EXT_debug_marker GL_EXT_depth_bounds_test GL_EXT_draw_buffers2 GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_provoking_vertex GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_specular_color GL_EXT_shadow_funcs GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture_array GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_s3tc GL_EXT_texture_env_add GL_EXT_texture_filter_anisotropic GL_EXT_texture_integer GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_rectangle GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_decode GL_EXT_timer_query GL_EXT_transform_feedback GL_EXT_vertex_array_bgra GL_APPLE_aux_depth_stencil GL_APPLE_client_storage GL_APPLE_element_array GL_APPLE_fence GL_APPLE_float_pixels GL_APPLE_flush_buffer_range GL_APPLE_flush_render GL_APPLE_object_purgeable GL_APPLE_packed_pixels GL_APPLE_pixel_buffer GL_APPLE_rgb_422 GL_APPLE_row_bytes GL_APPLE_specular_vector GL_APPLE_texture_range GL_APPLE_transform_hint GL_APPLE_vertex_array_object GL_APPLE_vertex_array_range GL_APPLE_vertex_point_size GL_APPLE_vertex_program_evaluators GL_APPLE_ycbcr_422 GL_ATI_separate_stencil GL_ATI_texture_env_combine3 GL_ATI_texture_float GL_ATI_texture_mirror_once GL_IBM_rasterpos_clip GL_NV_blend_square GL_NV_conditional_render GL_NV_depth_clamp GL_NV_fog_distance GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_light_max_exponent GL_NV_multisample_filter_hint GL_NV_point_sprite GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_SGIS_generate_mipmap GL_SGIS_texture_edge_clamp GL_SGIS_texture_lod 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 Disabled 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 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 YUV_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
,
Aug 4 2016
That's the non image-chromium path. Try the flag --enable-webgl-image-chromium
,
Aug 4 2016
Tried with --enable-webgl-image-chromium and --show-mac-overlay-borders --enable-webgl-image-chromium Same results, but I still see the same pink squares. How can I tell that flag is actually working (or how could you tell from the snapshot that it's the non-chromium path?) Also, checking on Canary, seems to do a more reasonable thing, and framerates in Quarts Debug are reported around 60, 30, 15, 9, etc.
,
Aug 4 2016
We want the red box around the WebGL content to turn into a pink box. If you're not getting a pink box around the WebGL content with --enable-webgl-image-chromium, then something must be wrong with the flag. Assuming that's the case... A couple of milestones ago, we implicitly got backpressure for WebGL via a glFinish in ImageTransportSurfaceOverlayMac. ericrk@ changed this to a sync token, which has the same effect, except on some GPUs (like the 750M), where it behaves differently (details unclear). We don't see this problem in the image-chromium path, since we explicitly deschedule via DescheduleUntilFinishedCHROMIUM(). I think the appropriate solution is to call DescheduleUntilFinishedCHROMIUM() for WebGL contexts on Mac, regardless of whether image chromium is enabled. kbr@, wdyt? If you still see framerate discrepancies when there's a pink box around the webgl content...then something really weird is going on.
,
Aug 4 2016
Definitely I'm running --show-mac-overlay-borders --enable-webgl-image-chromium, and I see pink boxes everywhere except when WebGL content kicks in (in any page, it actually goes from a grid of pink squares to a single red square). I've reset the couple of -unrelated- flags I had in settings, results still the same. The GPU is a 750M and I'm forcing osx to use the discrete always.
,
Aug 4 2016
Ooops, looks like that flag has no effect on Mac. :( https://cs.chromium.org/chromium/src/content/child/runtime_features.cc?sq=package:chromium&rcl=1470251930&l=144 On my 750M, I've confirmed that I see this problem with Image Chromium turned off. Let's try this flag instead... --enable-features=WebGLImageChromium
,
Aug 4 2016
With --enable-features=WebGLImageChromium, same result: border around WebGL content is red.
,
Aug 4 2016
Hey...asvitkine@, how do I force an experiment on? Maybe...? --force-fieldtrials="WebGLImageChromium/Enabled" +kbr, ericrk for c#11.
,
Aug 4 2016
Calling DescheduleUntilFinishedCHROMIUM for WebGL in all cases seems reasonable to me - unfortunate that the backpressure doesn't occur from the sync token/fences. I see that DescheduleUntilFinishedCHROMIUM also uses a fence - is the issue that sync/fence works, but must be called on the WebGL GL context itself (as opposed to the compositor GL context being hit in my change?).
,
Aug 4 2016
Given WebGLImageChromium is a base::Feature, comment 14 should be the correct way to enable it. I will note that it's actually enabled by default in the current code at TOT, so maybe disabling it is what you want to do?
,
Aug 4 2016
Looking at the code, it seems that feature is gated on kEnableGpuMemoryBufferCompositorResources: https://cs.chromium.org/chromium/src/content/child/runtime_features.cc?rcl=0&l=134 So you might need to specify --enable-gpu-memory-buffer-compositor-resources
,
Aug 4 2016
erikchen@: re c#11: > I think the appropriate solution is to call > DescheduleUntilFinishedCHROMIUM() for WebGL contexts on Mac, > regardless of whether image chromium is enabled. kbr@, wdyt? Sounds good to me. The backpressure on the WebGLImageChromium path seems to be working well. Is there a plan to enable "gpu memory buffer compositor resources" by default? (reveman@, ericrk@, ccameron@)
,
Aug 5 2016
By default, GMB compositor resources is enabled. https://cs.chromium.org/chromium/src/content/browser/gpu/compositor_util.cc?sq=package:chromium&dr=C&rcl=1470396217&l=230 the.spite is seeing the CA compositor work correctly when not on WebGL pages, so something is preventing WebGL from using the CA compositor...not sure what this is.
,
Aug 5 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/367bd8108240919b3372cb800806ffde2be20223 commit 367bd8108240919b3372cb800806ffde2be20223 Author: erikchen <erikchen@chromium.org> Date: Fri Aug 05 20:41:37 2016 Always call DescheduleUntilFinished for WebGL on macOS. This prevents WebGL from submitting too much work. BUG= 634091 Review-Url: https://codereview.chromium.org/2219963002 Cr-Commit-Position: refs/heads/master@{#410156} [modify] https://crrev.com/367bd8108240919b3372cb800806ffde2be20223/third_party/WebKit/Source/platform/graphics/gpu/DrawingBuffer.cpp
,
Aug 9 2016
"--enable-features=WebGLImageChromium" works for me for enabling Image Chromium. I've also confirmed that the issue is fixed on 750M without ImageChromium. the.spite: Please let us know if you are still experiencing problems on the latest Canary.
,
Aug 9 2016
It's hard to tell. Running Canary 54.0.2824.0 with --enable-features=WebGLImageChromium, it still look like there's about 5FPS of difference.
,
Aug 9 2016
The screenshot you posted in c#8 is the really scary one - it shows Chrome trying to refresh content at 30 fps, but only 15 WindowServer fps. This means that Chrome is overwhelming the GPU. The screenshot you posted in c#23 shows Chrome trying to refresh content at 19fps, but the WindowServer at 24fps. This is not-unreasonable, since drawing a new WebGL frame can be very expensive, but refreshing an existing frame from the WindowServer should be very cheap. I'd only be concerned if the WindowServer fps is lowing than the Chrome fps.
,
Aug 9 2016
Exactly. In Canary it's been much closer to the actual performance. I also think that Quartz Debug smoothes values differently from Chrome, so it makes sense that with a variable framerate over time the discreet values are not the same.
,
Aug 15 2016
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by kbr@chromium.org
, Aug 3 2016Components: Blink>WebGL Internals>GPU>Internals
Labels: Needs-Feedback
Status: Available (was: Unconfirmed)