TPEGFX/2017-Q3: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎ChihYi Leu: Update)
 
(42 intermediate revisions by 8 users not shown)
Line 8: Line 8:


==Goal==
==Goal==
===Bruce Sun===
===ChihYi Leu===
*[TODO]WebVR
*{{Bug|1371190}} - Update ANGLE to chromium/3229
** Landed


*[TODO]Layers-free
**{{Bug|1386162}} - Support nsDisplayClearBackground in layers-free mode
*** landed
** focus try failures with Layers-free


* Study
*[Done]WebGL stability
** Device reset flow (Q4 device reset testing plan)
** {{Bug|1319160}} - Intermittent test_webgl_disjoint_timer_query.html | Time elapsed query is available immediately after flush and event loop tick.
 
* gfx stability
** fix crash from crashStat
 
* Device reset
** topics from backlog
 
===ChihYi Leu===
* (done) {{Bug|1347866}} - Update ANGLE to 2950
** land
* WebGL Stability
** Investigate ANGLE crash described in {{Bug|1354997}}
*** UPDATE: It is an ANGLE bug, we reported it to Google and they have fixed it, but cherry-picking the fix will result in various conformance fails. Now we are investigating this issue and considering updating ANGLE to 3118.
** (done) {{Bug|1298285}} - Intermittent dom/canvas/test/webgl-conf/generated/test_conformance__context__context-release-upon-reload.html | getError expected: NO_ERROR. Was CONTEXT_LOST_WEBGL : Should be no errors
*** An OOM failure only happens in win32 non-e10s mode, will be disable in the future.
* WebGL perf
** (done) {{Bug|1355430}} - [WebGL Mochitest] Add Mochitest to test Video Fast-path uploading
*** land
** demo profiling (done)
** Make a perf to allow webapps disable WebGL validation (canceled)
** https://bugzilla.mozilla.org/show_bug.cgi?id=1207170 (1)
* WebVR testing (Blocked by WebVR development)
** {{Bug|1229479}} - [webvr] Implement Mochitests for WebVR
*** {{Bug|1306505}} - [webvr] Implement mochitest: VRDisplay.exitPresent must only be allowed by content that started VR Presentation
**** land
*** {{Bug|1311802}} - [webvr] Implement Mochitest: onvrdisplaydeactivate should only trigger for content that is presenting
**** land
* WebVR Controller
** {{Bug|1358064}} -Refactor fire event functions in GamepadManager (done)
*** land
*** land
* TODO
** (done) update bugzilla more frequently
** gfx triage for WebGL(stability or regression)


===Daosheng Mu===
===Daosheng Mu===
* WebVR
* WebVR
** VR controller
** VR process (TBD)
*** {{Bug|1349895}} - Support HTC Vive trackers (done)
*** {{Bug|1392216}} - Implement VR listener thread for listening devices change (done)
*** {{Bug|1336002}} - [webvr] Support HTC Vive button touched in the Gamepad API (done)
** Follow-up (done)  
*** {{Bug|1354737}} - Add assertion for checking TrackedDeviceClass_GenericTracker at OpenVR HandleInput()
*** {{Bug|1384865}} - OpenVR VRDisplay position is on the floor
*** {{Bug|1336003}} - [webvr] Support Oculus Touch button touched in the Gamepad API (done)
*** {{Bug|1382114}} - Update openvr to 1.0.9
*** {{Bug|1356452}} - For Vive controllers the hand attribute is not always available (done)
*** {{Bug|1397397}} - vrdisplayconnect / vrdisplaydisconnect not firing on Vive / OpenVR
*** {{Bug|1353523}} - Adjust threshold for Gamepad button `pressed` state and introduce pref to handle slightly sticky controller buttons (done)
*** {{Bug|1352520}} - Add GeckoProfiler Labels for WebVR
*** {{Bug|1355648}} - Add hasOrientation, hasPosition to the Gamepad extension for tracked controllers  (done)
** Gamepad (done)
*** {{Bug|1356460}} - Vive trigger touched flag is not set back to false (done)
*** {{Bug|1375816}} - displayId for Gamepad of the VRDisplay
** Stability
*** {{Bug|1382123}} - SteamVR Knuckles support for VRController
*** {{Bug|1306493}} - [webvr] Implement Mochitest: Multiple calls to VRDisplay.GetFrameData must return the same values within a frame (done)
*** {{Bug|1352410}} - Add a preference to enable or disable haptic feedback for gamepads
*** {{Bug|1351547}} - WebVR: crash [@mozilla::WebGLContext::StartVRPresentation()] (done)
*** {{Bug|1383110}} - Controllers are positioned inside the headset
*** {{Bug|1358885}} - Crash in mozilla::gfx::PVRManager::Transition (done)
*** {{Bug|1389227}} - Crash in InvalidArrayIndex_CRASH | mozilla::gfx::VRSystemManagerOpenVR::StopVibrateHaptic
*** {{Bug|1321275}} - [webvr] Crash in mozalloc_abort | NS_DebugBreak | mozilla::ipc::LogicError | mozilla::gfx::PVRLayer::Transition  (done)
*** {{Bug|1402749}} - WebVR: Assertion failure: !listeners.IsEmpty() [@mozilla::dom::GamepadManager::NewConnectionEvent]
*** {{Bug|1356421}} - OpenVR controllers enumeration is not reliable (done)
** Telemetry (done)
*** {{Bug|1358725}} - Release OpenVR controller axis should return zero (done)
*** {{Bug|1306156}} - [webvr] Use telemetry for tracking usage of WebVR API
*** {{Bug|1359670}} - Notify GamepadManager when controllers are removed in VRPuppet manager (done)
*** {{Bug|1392476}} - Add dropframe telemetry for WebVR
*** {{Bug|1362284}} - Assign the background thread before flushing pending events at GamepadEventChannelParent (done)
*** Dashboard, [https://mozvr.com/moz-vr-telemetry/ https://mozvr.com/moz-vr-telemetry/]
*** {{Bug|1358395}} - Permaorange in dom/tests/mochitest/general/test_interfaces.html and test_interfaces_secureContext.html on Windows for every VR property when Gecko 55 merges to beta on 2017-06-12 (done)
** Enable tests for WebVR on Mac (done)
*** {{Bug|1366941}} - Crash in VRLayerChild::SubmitFrame when the textureClient size is the same with CanvasClient (done)
*** {{Bug|1383907}} - Enable WebVR tests on macOS
*** {{Bug|1323088}} - Firefox Nightly 53.0a1 (2016-12-11) crashes in [@ @0x0 | mozilla::gfx::VRControllerManagerOpenVR ... ] & [@ @0x0 | mozilla::gfx::VRManager ... ]  
* [TODO] WebVR backlog for Q4 or 2018
*** {{Bug|1371228}} - VRLayerParent should be destroyed when SteamVR runtime is terminated  (done)
** get perf/fps from Telemetry
*** {{Bug|1364856}} - When VRLayerChild receives __delete__, stop sending IPC messages (done)
** video card from Telemetry
** Reftest
** VR process with Rust
*** {{Bug|1343730}} - [webvr] VRDisplayPuppet submitFrame support (done)
** Think about gfxCrititalNote from crash-stat
*** {{Bug|1229478}} - [webvr] Implement Reftests for WebVR (done)
*** sync after 8/15 WebVR meetup
*** {{Bug|1229481}} - [webvr] Implement Reftest support for WebVR functionality (done)
* WebGL (done)
*** {{Bug|1358010}} - Permaorange assertion failure and crash in test_vrDisplay_getFrameData.html when Gecko 55 merges to beta on 2017-06-12 (done)
** {{Bug|1359055}} - WebGL2: Upload of compressed textures from PBO fails
*** {{Bug|1323328}} - [webvr] Implement Cross-Browser compatible tool for emulating VR hardware (done)
** {{Bug|1398404}} - Assertion failure: IsCurrent(), at gfx/gl/GLContext.h:672
*** {{Bug|1368990}} - Implement WebVR reftest for verifying onVRPresentChange (done)
* Others (done)
* WebGL perf
** Talk at Mozilla Taipei developer day
** https://public.etherpad-mozilla.org/p/webgl-perf (2)
** Profiling
*** {{Bug|1358977}} - Profiling WebGL performance (done)
** Stability
*** {{Bug|1349102}} - WebGL crash: [@mozilla::gl::GLContext::AfterGLCall] (done)
*** {{Bug|1355726}} - Talos test for WebGL video texture upload (done)
*** {{Bug|1349055}} - WebGL: crash [@mozilla::WebGLContext::AssertCachedGlobalState] (done)
*** {{Bug|1358053}} - Assertion failure: surface->IsDataSourceSurface() (The snapshot SourceSurface from WebGL rendering contest is not DataSourceSurface.), at ImageBitmap.cpp:885 (done)
*** {{Bug|1349067}} - WebGL crash: [mozilla::gl::GLScreenBuffer::GetReadFB] (done)
*** {{Bug|1355362}} - Add a crashtest for the negative stencil clear value (done)
*** {{Bug|1368284}} - webgl loop using less than only iterates a couple times, period  (done)
* TODO
** Investigate {{Bug|1207170}} - webgl perf (done)
** Taipei developer conference - WebVR
** Mentor support


=== Ethan Lin ===
=== Ethan Lin ===
* DisplayItem correctness
* Layers-Free
** Turn on background color layer by default ({{Bug|1358055}})
** Add Basic Infrastructure
*** Fix mask problems ({{Bug|1355012}}, {{Bug|1354464}})
** Support mask function
*** Check fuzz issues ({{Bug|1350792}})
** Support filter function
** Turn on button background image layer by default
** Support fallback path
*** Fix position ({{Bug|1360112}})
** Add invalidation mechanism for fallback
*** Correct draw result ({{Bug|1359360}})
** Investigate failures on try server
*** Fix mask problems for DisplayItemLayer
** [TBD]Investigate SVG performance issues
** Turn on canvas background color layer by default
** Debug tool
** (Done) Turn on button foreground layer by default ({{Bug|1355417}})
*** Have a better to way to debug layers-free display problems
** pref profiling for SF all hands
* Turn on advanced background image by default
*** profile loading time for wiki page
* Prepare and mentor topics for newcomers
*** profile scrolling performance on wiki page
* TODO (senior engs)
** mentor topics(optional)
** Team influence
** status update


=== Jerry Shih ===
=== Jerry Shih ===
* Quantum dom labeling
* WR improvement
** Manage the dom labeling working status with Kevin and Vincent.
**Handle big size image - https://github.com/servo/webrender/pull/1533
* Quantum flow related bug
**Handle long text in WR - https://github.com/servo/webrender/pull/1597
** Check the device reset checking status on content
**Handle shmem mapping failed case in WR - https://github.com/servo/webrender/pull/1668
** Check the device reset checking status on compositor side.
**Export WR texture maximum size to gecko - https://github.com/servo/webrender/pull/1566
** Catch up the problem of PCompositorBridge::Msg_WillClose(bug 1334655) and cooperate with David.
**{{Bug|1357299}} - video directx nv12 texture support in gecko
* Webrender Stability
**{{Bug|1388240}} - video directx planar-ycbcr texture support in gecko
** Check for the various format and streaming video with WR.
* Resolve Quantum flow related bug
* Check the performance of WR image passing.
**{{Bug|1368531}} - dispatch font loading to idle thread.
** Profile the flow for video playback with WR.
**{{Bug|1349991}} - skip the DidComposite() message for non-updated layer tree.
** Use WR YCbCr image function in gecko. Currently, gecko use libyuv to convert the YCbCr data to RGB DataSoruceSourface. We could just use shader to do to color conversion.
* Stability
**Build up a group to triage the crash bug per week and fix them - https://wiki.mozilla.org/TPEGFX/Bugs#GFX_stability
**{{Bug|1379995}} - webgl deleteBuffer crash.
**{{Bug|1369677}} - shmem mapping failed crash.
* mentor
** Handle the device-reset problem in video case - {{Bug|1390452}} - handle the device-reset problem in video case.
* TODO (mid of Jan review first two itmes)
* TODO (mid of Jan review first two itmes)
** breackdown every item into one small bug(less than one month)
** breackdown every item into one small bug(less than one month)
Line 134: Line 94:
===Kevin Chen===
===Kevin Chen===
* gfx Stability
* gfx Stability
** Monitor bugs
** TDR
** Windows API study
*** [Done] {{Bug|1364563}} - Compositor process fails to composite layers from a content process
*** [Done] {{Bug|1386182}} - Should set FeatureState after EnableByDefault() in gfxWindowsPlatform::InitializeD3D11Config
*** Handle Video TDR
**** [Done] {{bug|1390452}} - Handle TDR when video is playing
*** [TBD]TDR fallback refactor
**** unify the recovery path of 'killGPU' and 'device reset'
** Stability triage
*** [Done] {{Bug|1351349}} - Crash in igd10iumd32.dll | CContext::EmptyOutAllDDIBindPoints
*** [Done] {{Bug|1362321}} - Crash in gfxPlatform::Init
*** focus WR-stability
* WR
** focus on try failures of Quantum Render
*** [Done] {{Bug|1392470}} - Add wr support for nsDisplayButtonBoxShadowOuter
*** [Done] {{Bug|1396492}} - Support uniform radius for nsDisplayBoxShadowInner
*** [Done] {{Bug|1393376}} - Handle the filter's invalidation in layers-free mode


* DOM-Labeling
* gfx triage practice
* Houdini Painting API
* Campus presentation
** 2/22 @ TsingHua University.
* TODO
* TODO
** breackdown every item into one small bug(between two week or less than one month)  
** breackdown every item into one small bug(between two week or less than one month)  
Line 147: Line 116:


=== Morris Tseng ===
=== Morris Tseng ===
* Display item conversion
* Layers-free
** Table conversion
** Item conversion
*** {{bug|929484}} - Make HTML table frames (including row/cell/etc. frames) create their own display list items
*** Image support (done)
**** Fix display item collision problem.
*** Canvas support (done)
**** Add some test works.
*** mix-blend-mode support (done)
*** {{Bug|1344082}} - Add webrender support for TableBCBorder
*** CSS animation won't start (done)
** Turn on background color by default
*** Perspective support (done)
*** {{Bug|1358055}} - Enable 'layers.advanced.background-color' by default
*** Filter fallback path (done)
*** Add fuzzy-if (should be done by Ethan)
*** WebRenderUserData refinement (done)
*** Some pixel snapping issues.
*** Transform3d tests fix (almost done, only 2-3 left)
*** Some problem with scrolling.
*** Support backface:hidden (done)
** Turn on bullet by default
*** Discuss how we handle after paint event.
*** Add some fuzzy-if for sub-pixel text.
* Retained DL
*** Use blob image for path type.
** Fix test failure in webrender. (done)
** Turn on canvas background color by default
* WR improvement
*** Most problem would be same as background color.
** Add backface:hidden support. (done)
** Turn on basic border by default.
** Fix some transform 3d bugs. (done)
*** Not very clear now. But we'll turn on basic border first.
* Table refactor regression (done)
* QR performance profiling
 
** Profile wiki page
* [TODO] follow up with QA support
* [TODO] Mentoring.


=== Peter Chang ===
=== Peter Chang ===
Line 178: Line 148:
=== Vincent Liu ===
=== Vincent Liu ===
* gfx Stability
* gfx Stability
** {{Bug|1350330}} - [Done]Crash in mozalloc_abort | NS_DebugBreak | mozilla::ipc::LogicError | mozilla::layers::PLayerTransactionChild::SendReleaseCompositable
** {{Bug|1367689}} - [Done] Make Wrench work with gecko
** {{Bug|1357307}} - [Working]startup crash in gfxPrefs::CMSMode() with session manager installed
** {{Bug|1371546}} - [Done] Intermittent short.mp4.lastframe.html,test_WaitingToEndedTransition_mp4.html,test_selftest.html | application crashed [@ mozilla::wr::RenderTextureHost::~RenderTextureHost]
** Many bugs triage.
** {{Bug|1379545}} - [Done] Start up crash with combination of WR.enable, WR.force-angle=false
* GetDeviceRemoved study
** {{Bug|1374254}} - [Done] Crash in RtlpWaitOnCriticalSection | RtlpEnterCriticalSectionContended | RtlEnterCriticalSection | CUseCountedObject<T>::UCReleaseUse
** A study into {{Bug|1355416}}
** {{Bug|1386487}} - [Done] Crash in CContext::ID3D11DeviceContext1_Map_<T>
** Compositor/Content
** {{Bug|1390401}} - [Done] Fix typo of ENABLE_WR_RENDERING to ENABLE_WR_RECORDING.
* gfx labeling
** {{Bug|1399006}} - [Working] stylo: Fatal Assertion dropping CachedBorderImageData during servo traversal
** {{Bug|1333962}} - [Triage]Label the vsync runnable
* [TODO] local testing for device-reset under non-e10s
** {{Bug|1343475}} - [Done]Label runnables for platform-independent widget
** A workable testing flow with Dxcap in local.
** {{Bug|1350677}} - [Done]Label nsExiprationTracker subclass gfxFontCache
** Use cases under device-reset testing.
* [Pending after local testing]{{Bug|1379911}} - [Working] Device Reset Testing.
** [TODO] try server
*** Verified Dxcap.exe behavior on try server.
*** callback or event communication between test case and Reftest.jsm
*** Accurately to run DxCap.cpp in specific time slot.
* [TODO Need breakdown]gfx labeling
** {{Bug|1356956}} - Label the messages under PCompositorBridge
* TODO (senior engs)
* TODO (senior engs)
** breakdown every item into one small bug(less than one month)
** breakdown every item into one small bug(less than one month)

Latest revision as of 05:15, 24 October 2017

GFX Topics(from high to low priority)

  • gfx Stability
  • Quantum Rendering(FF57 Aurora on 8/7)
  • Canvas 2D perf(google sheet/streaming)
  • DisplayList(layout related work)
  • Paint correctness(buglist)
  • Any layout works, ex: perf/CSS properties

Goal

ChihYi Leu

  • [TODO]WebVR
  • bug 1371190 - Update ANGLE to chromium/3229
    • Landed
  • [TODO]Layers-free
    • bug 1386162 - Support nsDisplayClearBackground in layers-free mode
      • landed
    • focus try failures with Layers-free
  • [Done]WebGL stability
    • bug 1319160 - Intermittent test_webgl_disjoint_timer_query.html | Time elapsed query is available immediately after flush and event loop tick.
      • land

Daosheng Mu

  • WebVR
    • VR process (TBD)
      • bug 1392216 - Implement VR listener thread for listening devices change (done)
    • Follow-up (done)
      • bug 1384865 - OpenVR VRDisplay position is on the floor
      • bug 1382114 - Update openvr to 1.0.9
      • bug 1397397 - vrdisplayconnect / vrdisplaydisconnect not firing on Vive / OpenVR
      • bug 1352520 - Add GeckoProfiler Labels for WebVR
    • Gamepad (done)
      • bug 1375816 - displayId for Gamepad of the VRDisplay
      • bug 1382123 - SteamVR Knuckles support for VRController
      • bug 1352410 - Add a preference to enable or disable haptic feedback for gamepads
      • bug 1383110 - Controllers are positioned inside the headset
      • bug 1389227 - Crash in InvalidArrayIndex_CRASH | mozilla::gfx::VRSystemManagerOpenVR::StopVibrateHaptic
      • bug 1402749 - WebVR: Assertion failure: !listeners.IsEmpty() [@mozilla::dom::GamepadManager::NewConnectionEvent]
    • Telemetry (done)
    • Enable tests for WebVR on Mac (done)
  • [TODO] WebVR backlog for Q4 or 2018
    • get perf/fps from Telemetry
    • video card from Telemetry
    • VR process with Rust
    • Think about gfxCrititalNote from crash-stat
      • sync after 8/15 WebVR meetup
  • WebGL (done)
    • bug 1359055 - WebGL2: Upload of compressed textures from PBO fails
    • bug 1398404 - Assertion failure: IsCurrent(), at gfx/gl/GLContext.h:672
  • Others (done)
    • Talk at Mozilla Taipei developer day

Ethan Lin

  • Layers-Free
    • Add Basic Infrastructure
    • Support mask function
    • Support filter function
    • Support fallback path
    • Add invalidation mechanism for fallback
    • Investigate failures on try server
    • [TBD]Investigate SVG performance issues
    • Debug tool
      • Have a better to way to debug layers-free display problems
  • Turn on advanced background image by default
  • Prepare and mentor topics for newcomers

Jerry Shih

Kevin Chen

  • gfx Stability
    • TDR
      • [Done] bug 1364563 - Compositor process fails to composite layers from a content process
      • [Done] bug 1386182 - Should set FeatureState after EnableByDefault() in gfxWindowsPlatform::InitializeD3D11Config
      • Handle Video TDR
      • [TBD]TDR fallback refactor
        • unify the recovery path of 'killGPU' and 'device reset'
    • Stability triage
      • [Done] bug 1351349 - Crash in igd10iumd32.dll | CContext::EmptyOutAllDDIBindPoints
      • [Done] bug 1362321 - Crash in gfxPlatform::Init
      • focus WR-stability
  • WR
    • focus on try failures of Quantum Render
      • [Done] bug 1392470 - Add wr support for nsDisplayButtonBoxShadowOuter
      • [Done] bug 1396492 - Support uniform radius for nsDisplayBoxShadowInner
      • [Done] bug 1393376 - Handle the filter's invalidation in layers-free mode
  • TODO
    • breackdown every item into one small bug(between two week or less than one month)
    • frequently bugzilla updates

Morris Tseng

  • Layers-free
    • Item conversion
      • Image support (done)
      • Canvas support (done)
      • mix-blend-mode support (done)
      • CSS animation won't start (done)
      • Perspective support (done)
      • Filter fallback path (done)
      • WebRenderUserData refinement (done)
      • Transform3d tests fix (almost done, only 2-3 left)
      • Support backface:hidden (done)
      • Discuss how we handle after paint event.
  • Retained DL
    • Fix test failure in webrender. (done)
  • WR improvement
    • Add backface:hidden support. (done)
    • Fix some transform 3d bugs. (done)
  • Table refactor regression (done)
  • [TODO] follow up with QA support
  • [TODO] Mentoring.

Peter Chang

  • OMTA
    • Works in compositor side
      • [Done]Add sampleanimation(bug 1345017) ~ two weeks
      • [Done]enable WebRender OMTA by default(bug 1358437)
    • Support OMTA testing flow
      • move OMTA testing methods into share sub-protocol(bug 1316906)

Vincent Liu

  • gfx Stability
    • bug 1367689 - [Done] Make Wrench work with gecko
    • bug 1371546 - [Done] Intermittent short.mp4.lastframe.html,test_WaitingToEndedTransition_mp4.html,test_selftest.html | application crashed [@ mozilla::wr::RenderTextureHost::~RenderTextureHost]
    • bug 1379545 - [Done] Start up crash with combination of WR.enable, WR.force-angle=false
    • bug 1374254 - [Done] Crash in RtlpWaitOnCriticalSection | RtlpEnterCriticalSectionContended | RtlEnterCriticalSection | CUseCountedObject<T>::UCReleaseUse
    • bug 1386487 - [Done] Crash in CContext::ID3D11DeviceContext1_Map_<T>
    • bug 1390401 - [Done] Fix typo of ENABLE_WR_RENDERING to ENABLE_WR_RECORDING.
    • bug 1399006 - [Working] stylo: Fatal Assertion dropping CachedBorderImageData during servo traversal
  • [TODO] local testing for device-reset under non-e10s
    • A workable testing flow with Dxcap in local.
    • Use cases under device-reset testing.
  • [Pending after local testing]bug 1379911 - [Working] Device Reset Testing.
    • [TODO] try server
      • Verified Dxcap.exe behavior on try server.
      • callback or event communication between test case and Reftest.jsm
      • Accurately to run DxCap.cpp in specific time slot.
  • [TODO Need breakdown]gfx labeling
    • bug 1356956 - Label the messages under PCompositorBridge
  • TODO (senior engs)
    • breakdown every item into one small bug(less than one month)
    • mentor topics
    • Team influence
    • Solid gfx triage/crash improvement plan
      • Triage flow
      • Hold a triage meeting to go through triage.(Optional)

open qusetion

  • TODO (senior engs)
    • breackdown every item into one small bug(less than one month)
    • mentor topics
    • Team influence