Improve reliability of synchronization between WebView compositor and UI compositor
Bug #1435835 reported by
Chris Coulson
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Oxide |
Fix Released
|
Critical
|
Chris Coulson |
Bug Description
Flickering is observed on some devices (occasional blank frames), and enabling a debug build of Oxide shows that the blank frames become solid-blue (which happens to be the colour that the Chromium compositor clears the framebuffer to at the start of each frame in debug builds). This suggests that there's a race where the UI compositor consumes frames from the WebView compositor too early
Related branches
lp://staging/~chrisccoulson/oxide/arale-fixes
- Chris Coulson: Pending requested
-
Diff: 4558 lines (+2097/-844)48 files modifiedpatches/add-oxide-classes-to-thread-restrictions-friends.patch (+47/-0)
patches/gpu-thread-shim.patch (+7/-5)
patches/series (+1/-0)
qt/core/app/oxide_qt_platform_delegate.cc (+3/-5)
qt/core/app/oxide_qt_platform_delegate.h (+2/-7)
qt/core/browser/oxide_qt_browser_platform_integration.cc (+8/-9)
qt/core/browser/oxide_qt_browser_platform_integration.h (+6/-9)
qt/core/browser/oxide_qt_browser_startup.cc (+6/-7)
qt/core/browser/oxide_qt_browser_startup.h (+7/-4)
qt/core/core.gyp (+3/-2)
qt/core/glue/oxide_qt_init.cc (+3/-3)
qt/core/glue/oxide_qt_web_view_adapter.cc (+10/-3)
qt/core/glue/oxide_qt_web_view_adapter.h (+7/-15)
qt/core/gpu/oxide_qt_gl_context_dependent.cc (+17/-31)
qt/core/gpu/oxide_qt_gl_context_dependent.h (+10/-18)
qt/quick/CMakeLists.txt (+1/-0)
qt/quick/api/oxideqquickwebview.cc (+17/-1)
qt/quick/oxide_qquick_accelerated_frame_node.cc (+2/-2)
qt/quick/oxide_qquick_image_frame_node.cc (+98/-0)
qt/quick/oxide_qquick_image_frame_node.h (+58/-0)
shared/browser/compositor/oxide_compositing_mode.h (+40/-0)
shared/browser/compositor/oxide_compositor.cc (+5/-3)
shared/browser/compositor/oxide_compositor.h (+2/-2)
shared/browser/compositor/oxide_compositor_frame_handle.cc (+12/-11)
shared/browser/compositor/oxide_compositor_frame_handle.h (+25/-12)
shared/browser/compositor/oxide_compositor_gpu_shims.cc (+188/-0)
shared/browser/compositor/oxide_compositor_gpu_shims.h (+91/-0)
shared/browser/compositor/oxide_compositor_output_surface_gl.cc (+48/-39)
shared/browser/compositor/oxide_compositor_output_surface_gl.h (+12/-10)
shared/browser/compositor/oxide_compositor_thread_proxy.cc (+283/-102)
shared/browser/compositor/oxide_compositor_thread_proxy.h (+81/-19)
shared/browser/compositor/oxide_compositor_utils.cc (+340/-312)
shared/browser/compositor/oxide_compositor_utils.h (+44/-21)
shared/browser/compositor/oxide_mailbox_buffer_map.cc (+249/-0)
shared/browser/compositor/oxide_mailbox_buffer_map.h (+130/-0)
shared/browser/oxide_browser_main_parts.cc (+34/-8)
shared/browser/oxide_browser_main_parts.h (+16/-8)
shared/browser/oxide_browser_platform_integration.cc (+2/-2)
shared/browser/oxide_browser_platform_integration.h (+3/-3)
shared/browser/oxide_content_browser_client.cc (+4/-4)
shared/browser/oxide_web_view.cc (+5/-3)
shared/gpu/oxide_gl_context_dependent.cc (+41/-16)
shared/gpu/oxide_gl_context_dependent.h (+30/-17)
shared/port/content/common/gpu_client_shim_oxide.cc (+32/-0)
shared/port/content/common/gpu_client_shim_oxide.h (+35/-0)
shared/port/content/common/gpu_service_shim_oxide.cc (+13/-69)
shared/port/content/common/gpu_service_shim_oxide.h (+12/-60)
shared/shared.gyp (+7/-2)
Changed in oxide: | |
status: | New → In Progress |
importance: | Undecided → Critical |
assignee: | nobody → Chris Coulson (chrisccoulson) |
milestone: | none → branch-1.7 |
Changed in oxide: | |
status: | In Progress → Fix Released |
To post a comment you must log in.