Closed Bug 1617879 Opened 4 years ago Closed 4 years ago

Glitches and performance issues with WebRender

Categories

(Core :: Graphics: WebRender, defect, P3)

73 Branch
defect

Tracking

()

VERIFIED FIXED
mozilla76
Tracking Status
firefox-esr68 --- unaffected
firefox73 --- wontfix
firefox74 --- wontfix
firefox75 --- verified
firefox76 --- verified

People

(Reporter: eugene.lindeman, Assigned: kvark)

References

(Blocks 1 open bug)

Details

(Keywords: regression)

Attachments

(2 files)

Attached video glitch.mov

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Safari/605.1.15

Steps to reproduce:

Firefox with WebRender enabled gives graphics glitches and much worse performance than OpenGL or Direct3D 11 compositing.

Open the page: https://online.flippingbook.com/view/598058/, grab the upper page corner with the mouse and drag slowly as if you are flipping the page.

Actual results:

The FPS is really low and there are a lot of graphic glitches when the page is being flipped by slowly dragging the corner. The glitches look like rectangles near the moving page edge (see attached video).

These is the debug data from a Mac computer with WebRender forcedly enabled, however the same problem persists on Windows machines with WebRender enabled by default.

Application Basics

Name: Firefox
Version: 73.0.1
Build ID: 20200217142647
Update Channel: release
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:73.0) Gecko/20100101 Firefox/73.0
OS: Darwin 18.5.0
Multiprocess Windows: 1/1 Enabled by default
Remote Processes: 4
Enterprise Policies: Inactive
Google Location Service Key: Found
Google Safebrowsing Key: Found
Mozilla Location Service Key: Found
Safe Mode: false

Crash Reports for the Last 3 Days

Firefox Features

Name: DoH Roll-Out
Version: 1.3.0
ID: doh-rollout@mozilla.org

Name: Firefox Screenshots
Version: 39.0.0
ID: screenshots@mozilla.org

Name: Form Autofill
Version: 1.0
ID: formautofill@mozilla.org

Name: Web Compat
Version: 7.0.0
ID: webcompat@mozilla.org

Name: WebCompat Reporter
Version: 1.1.0
ID: webcompat-reporter@mozilla.org

Remote Processes

Type: Web Content
Count: 3 / 8

Type: Extension
Count: 1

Extensions

Name: Amazon.com
Version: 1.1
Enabled: true
ID: amazondotcom@search.mozilla.org

Name: Bing
Version: 1.1
Enabled: true
ID: bing@search.mozilla.org

Name: DuckDuckGo
Version: 1.0
Enabled: true
ID: ddg@search.mozilla.org

Name: eBay
Version: 1.0
Enabled: true
ID: ebay@search.mozilla.org

Name: Google
Version: 1.0
Enabled: true
ID: google@search.mozilla.org

Name: OZON.ru
Version: 1.2
Enabled: true
ID: ozonru@search.mozilla.org

Name: Price.ru
Version: 1.0
Enabled: true
ID: priceru@search.mozilla.org

Name: Twitter
Version: 1.0
Enabled: true
ID: twitter@search.mozilla.org

Name: Vue.js devtools
Version: 5.3.3
Enabled: true
ID: {5caff8cc-3d2e-4110-a88a-003cc85b3858}

Name: Wikipedia (en)
Version: 1.0
Enabled: true
ID: wikipedia@search.mozilla.org

Name: Yandex
Version: 1.0
Enabled: true
ID: yandex@search.mozilla.org

Name: Поиск Mail.Ru
Version: 1.0
Enabled: true
ID: mailru@search.mozilla.org

Graphics

Features
Compositing: WebRender
Asynchronous Pan/Zoom: wheel input enabled; scrollbar drag enabled; keyboard enabled; autoscroll enabled
WebGL 1 Driver WSI Info: CGL
WebGL 1 Driver Renderer: ATI Technologies Inc. -- AMD Radeon Pro 570 OpenGL Engine
WebGL 1 Driver Version: 4.1 ATI-2.8.38
WebGL 1 Driver 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_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
WebGL 1 Extensions: ANGLE_instanced_arrays EXT_blend_minmax EXT_color_buffer_half_float EXT_disjoint_timer_query EXT_float_blend EXT_frag_depth EXT_shader_texture_lod EXT_sRGB EXT_texture_compression_rgtc EXT_texture_filter_anisotropic OES_element_index_uint OES_fbo_render_mipmap OES_standard_derivatives OES_texture_float OES_texture_float_linear OES_texture_half_float OES_texture_half_float_linear OES_vertex_array_object WEBGL_color_buffer_float WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_depth_texture WEBGL_draw_buffers WEBGL_lose_context
WebGL 2 Driver WSI Info: CGL
WebGL 2 Driver Renderer: ATI Technologies Inc. -- AMD Radeon Pro 570 OpenGL Engine
WebGL 2 Driver Version: 4.1 ATI-2.8.38
WebGL 2 Driver 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_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
WebGL 2 Extensions: EXT_color_buffer_float EXT_disjoint_timer_query EXT_float_blend EXT_texture_compression_rgtc EXT_texture_filter_anisotropic OES_texture_float_linear WEBGL_compressed_texture_s3tc WEBGL_compressed_texture_s3tc_srgb WEBGL_debug_renderer_info WEBGL_debug_shaders WEBGL_lose_context
Uses Tiling: true
Uses Tiling (Content): true
Off Main Thread Painting Enabled: true
Off Main Thread Painting Worker Count: 3
Target Frame Rate: 60
GPU #1
Active: Yes
Vendor ID: 0x1002
Device ID: 0x67df
RAM: 0

Diagnostics
AzureCanvasBackend: skia
AzureContentBackend: skia
AzureFallbackCanvasBackend: none
CMSOutputProfile: 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
Display0: 2560x1440 scale:2.000000
DisplayCount: 1
TileHeight: 1024
TileWidth: 1024
Decision Log
WEBRENDER:
opt-in by default: WebRender is an opt-in feature
available by user: Force enabled by pref
WEBRENDER_QUALIFIED:
blacklisted by env: No qualified hardware
WEBRENDER_COMPOSITOR:
disabled by default: Disabled by default
WEBGPU:
disabled by default: Disabled by default

Media

Audio Backend: audiounit
Max Channels: 2
Preferred Sample Rate: 44100
Output Devices
Name: Group
Наушники: AppleHDAEngineOutput:1F,3,0,1,1:0
Input Devices
Name: Group
Внешний микрофон: AppleHDAEngineInput:1F,3,0,1,0:1

Enumerate database

Important Modified Preferences

accessibility.typeaheadfind.flashBar: 0
browser.cache.disk.amount_written: 1009137
browser.cache.disk.capacity: 1048576
browser.cache.disk.filesystem_reported: 1
browser.cache.disk.smart_size.first_run: false
browser.cache.disk.telemetry_report_ID: 1
browser.cache.frecency_experiment: 3
browser.contentblocking.category: standard
browser.places.smartBookmarksVersion: 8
browser.sessionstore.upgradeBackup.latestBuildID: 20200217142647
browser.startup.homepage_override.buildID: 20200217142647
browser.startup.homepage_override.mstone: 73.0.1
browser.tabs.remote.autostart.2: true
browser.urlbar.lastSuggestionsPromptDate: 20180129
browser.urlbar.placeholderName: Yandex
browser.urlbar.timesBeforeHidingSuggestionsHint: 0
dom.ipc.processCount.web: 4
dom.push.userAgentID: 5d83878bf4f543dfb2f54b2e3ec46908
extensions.lastAppVersion: 73.0.1
font.internaluseonly.changed: false
gfx.webrender.all: true
idle.lastDailyNotification: 1582621177
media.benchmark.vp9.fps: 123
media.benchmark.vp9.versioncheck: 5
media.gmp-gmpopenh264.abi: x86_64-gcc3
media.gmp-gmpopenh264.lastUpdate: 1572356661
media.gmp-gmpopenh264.version: 1.8.1.1
media.gmp-manager.buildID: 20200217142647
media.gmp-manager.lastCheck: 1582633556
media.gmp-widevinecdm.abi: x86_64-gcc3
media.gmp-widevinecdm.lastUpdate: 1582274628
media.gmp-widevinecdm.version: 4.10.1582.2
media.gmp.storage.version.observed: 1
network.cookie.prefsMigrated: true
network.http.throttle.version: 2
network.predictor.cleaned-up: true
places.database.lastMaintenance: 1582107732
places.history.expiration.transient_current_max_pages: 112348
plugin.disable_full_page_plugin_for_types: application/pdf
privacy.sanitize.pending: [{"id":"newtab-container","itemsToClear":[],"options":{}}]
privacy.socialtracking.notification.counter: 2
privacy.socialtracking.notification.lastShown: 1575546960290
security.remote_settings.intermediates.checked: 1562836789
security.sandbox.content.tempDirSuffix: {86ca4168-0ab0-b54f-9343-eb830361497b}
security.sandbox.plugin.tempDirSuffix: be3ce86a-f2e0-c241-88f3-88c915087398
services.sync.declinedEngines:
signon.importedFromSqlite: true
storage.vacuum.last.index: 1
storage.vacuum.last.places.sqlite: 1582275577

Important Locked Preferences

fission.autostart: false

Places Database

JavaScript

Incremental GC: true

Accessibility

Activated: false
Prevent Accessibility: 0

Library Versions

NSPR
Expected minimum version: 4.24
Version in use: 4.24

NSS
Expected minimum version: 3.49.2
Version in use: 3.49.2

NSSSMIME
Expected minimum version: 3.49.2
Version in use: 3.49.2

NSSSSL
Expected minimum version: 3.49.2
Version in use: 3.49.2

NSSUTIL
Expected minimum version: 3.49.2
Version in use: 3.49.2

Sandbox

Content Process Sandbox Level: 3
Effective Content Process Sandbox Level: 3

Internationalization & Localization

Application Settings
Requested Locales: ["en-US","ru"]
Available Locales: ["ru","en-US","ar"]
App Locales: ["en-US","ru"]
Regional Preferences: ["en-RU","ru-RU"]
Default Locale: "ru"
Operating System
System Locales: ["en-RU","ru-RU"]
Regional Preferences: ["en-RU","ru-RU"]

Expected results:

No graphic glitches and better performance (compare with Direct3D 11 or OpenGL compositing)

Bugbug thinks this bug should belong to this component, but please revert this change in case of error.

Component: Untriaged → Graphics: WebRender
Product: Firefox → Core

I can confirm the glitches. To repro the glitching, turn the page like shown in the video. A normal turn will not repro the glitch

Status: UNCONFIRMED → NEW
Ever confirmed: true
Blocks: wr-75
Priority: -- → P3

Dzmitry, can you take a look at this?

Flags: needinfo?(dmalyshau)
Assignee: nobody → dmalyshau
Status: NEW → ASSIGNED
Flags: needinfo?(dmalyshau)

Mozregression pushlog: https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=e4e2245fc1428c33db179ca2f242b922ad988d79&tochange=9c13dbdf4cc9baf98881b4e2374363587fb017b7

So far, it looks like a regular image is being clipped by a rectangle that is in a different (transformed) space. The image is split into segments, and some of the segments are erroneously considered to be fully within the clip inner rectangle (while really they are on the edge).

More concretely, regression is called by this WR commit: https://github.com/servo/webrender/commit/18879438abd7bcb9575a757a0f45e13258ae916f going by the name of "Correctness and optimizations for clips in different coord systems.".
CC'ing Glenn (no immediate need to look here though)

Figured out the project_inner_rect producing incorrect results on some long skewed rectangles.

Instead of trying to extract an inner rectangle from a transformed inner rectange,
which by itself doesn't have an obviously "best" solution, we are going to test if the
visibility rect is within the polygon of the projected inner rect.

The test is more precise, could be slightly more heavy, but most importantly - it's correct.

Bugbug thinks this bug is a regression, but please revert this change in case of error.

Keywords: regression
Pushed by dmalyshau@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1692426a9549
Rewrite the check for transformed clip intersection with the primitive in WR r=gw
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla76

Is this something we should consider uplifting to Beta for Fx75? Please nominate for approval if so.

Flags: needinfo?(dmalyshau)
Flags: in-testsuite+

Comment on attachment 9131635 [details]
Rewrite the check for transformed clip intersection with the primitive in WR

Beta/Release Uplift Approval Request

  • User impact if declined: Small visual corruptions on some websites that use thin long transformed clips.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): It's just a computational change. No high level logic is involved.
  • String changes made/needed:
Flags: needinfo?(dmalyshau)
Attachment #9131635 - Flags: approval-mozilla-beta?

Comment on attachment 9131635 [details]
Rewrite the check for transformed clip intersection with the primitive in WR

webrender fix, approved for 75.0b4

Attachment #9131635 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
Flags: qe-verify+
QA Whiteboard: [qa-triaged]

This issue is verified as fixed in our latest nightly build as well as Beta 75.0b4 on Windows 10, Mac 10.13 and Mac 10.15.

Status: RESOLVED → VERIFIED
QA Whiteboard: [qa-triaged]
Flags: qe-verify+
Regressions: 1629776
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: