TPEGFX/2017-Q1

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

  • WebGL Stability
    • bug 1329051 - WebGL shader crashes with "shaderSource: Source has more than 262143 characters. (Driver workaround)" while it is working on Chrome and Edge
    • bug 1336710 - Crash in rx::Blit9::initialize
  • WebGL conformance test
    • bug 1324765 - Crash in std::vector<T>::_Buy
    • bug 1315037 - Intermittent dom/canvas/test/webgl-conf/generated/test_2_conformance__textures__video__tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html | Test timed out.
  • Assist Daosheng for his VR Gamepad Mochitest work if he has no bandwidth to do it.
  • TODO
    • update bugzilla more frequently
    • gfx triage for WebGL(stability or regression)
    • Sharing testing environment/Fire request for video card purchase
    • Perform ANGLE update(before Mid of March) or Conformance suite upgrade
    • WebGL spec/flow(or depend on Topics peter provided)
    • prepare for WebGL work week during 4/10

Daosheng Mu

  • bug 1260558 - [webvr] [meta] Support Oculus Touch Controllers
    • bug 1305873 - [webvr] Update Oculus support to the latest SDK (Currently 1.10)
    • bug 1305889 - [webvr] Enumerate Oculus Touch Controllers through the Gamepad API
    • bug 1305890 - [webvr] Support Oculus Touch button and analogue inputs in the Gamepad API
    • bug 1305891 - [webvr] Support Oculus Touch orientation and position tracking in the Gamepad API
    • bug 1305892 - [webvr] Support Oculus Touch Haptic Feedback
  • WebVR conformance test suite
    • bug 1323328 - [webvr] Implement Cross-Browser compatible tool for emulating VR hardware
      • Integrate with OpenVR runtime source code to emulate the real device
      • Share conformance test suite to ensure compatibility across browsers as much as possible.
      • Gamepad extension tests
    • bug 1229479 - [webvr] Implement Mochitests for WebVR (optional)
      • bug 1306493 - [webvr] Implement Mochitest: Multiple calls to VRDisplay.GetFrameData must return the same values within a frame
      • bug 1306505 - [webvr] Implement mochitest: VRDisplay.exitPresent must only be allowed by content that started VR Presentation
      • bug 1306507 - [webvr] Implement Mochitest: VRDisplay.isPresenting must not spill information between JS contexts
      • bug 1311797 - [webvr] Implement Mochitest: `vrdisplayactivate` event should trigger only when no content is presenting
      • bug 1311802 - [webvr] Implement Mochitest: onvrdisplaydeactivate should only trigger for content that is presenting
  • WebGL module work
  • bug 1302341 - SVG link element focus behavior (optional)
  • bug 1302340 - SVG elements and negative tabindex (optional)
  • TODO
    • Question list for WebGL perf
    • investigate bug 1207170 - webgl perf
    • highlight to peter about bandwidth concern for WebVR and WebGL

Ethan Lin

  • Display item conversion
  • [Done] Import ContentClient to WebRenderPaintedLayer (bug 1322504)
  • DisplayItem conversion perf
    • Simplify properties conversion
      • gfx:Rect -> WRRect -> WrRect
    • memory usage/memory copy/IPC cost when there are lots of displayitems
  • TODO (senior engs)
    • Come out plans for DisplayItem topic
      • Consider wr_push/RenderLayer Overhead(Go to accumulated)/how to group different displyitem
    • Copy WR items into gfx-wr-2017 with effort estimation
    • mentor topics(optional)
    • Team influence

Jerry Shih

  • [Done] Webrender updating support
    • bug 1329574 - enable depth-buffer when we use webrender
  • [Done] Renderer thread support
  • WR external image integration
    • update compositable, textureHost and textureSource for new WR thread model(WR render and WR backend are not at IPC receiver thread)
      • [Done] bug 1338285 - WR external image callback interface
      • [Done] bug 1340997 - implement external image handler in RendererOGL
      • Try to use renderOGL with WRCompoisitables in renderer thread - 2 week
        • bug 1341235 - External image integration
        • bug 1336956bug 1336963 - split textureHost into WRTextureHost and WRCompositableTextureHost - 2 days
        • update textureHost::Create() to create WRxxxTextureHost - 2 days
        • create WRCompositable - 1 day
        • update WRImageHost base on bug 1336021 for renderer thread- 2 days
    • Video playback in WR
      • Schedule a new composition to renderer when the CompositorBridgeParent receives a new video frame - 2 days
      • [TBD] Review the video playback path to show the video frame in WR - 3 days
        • Software and hardware coding path
      • [TBD] Handle the problem of different decoding size of video.
    • [Done] [WR]handle shmem in WR(upload to gl texture in WR)
      • bug 1330530 - support external shmem in Webrender - 1 week without review
    • support subimage for wr add_image api
      • This api is not used due to the SkPicture.
    • support GL_IOSurface ( https://github.com/servo/webrender/issues/642 ) - 2 days
  • WR software backend
    • Talked with JeffM. We will just use the original gecko path. No action for this item.
  • Performance and memory usage comparison
    • compare the current gecko and the WR with all WRImageLayer for gallery-like page.
  • TODO (mid of Jan review first two itmes)
    • breackdown every item into one small bug(less than one month)
    • Copy WR items into gfx-wr-2017 with effort estimation
    • mentor topics
    • Team influence

Kevin Chen

  • gfx Stability
    • nvwgf2umx.dll crashes
      • bug 1292273 - Crash in nvwgf2um.dll | BaseThreadInitThunk
      • bug 1325933 - Crash in nvwgf2um.dll | TCLSWrappers<T>::CLSDestroy
      • bug 1328082 - Crash in nvwgf2umx.dll | NDXGI::CDevice::DestroySynchronizationObjectCB
    • device reset crashes
      • bug 1160157 - non device reset startup forced crash in mozilla::layers::SyncObjectD3D11::FinalizeFrame()
      • (Done) bug 1338639 - Crash in mozilla::layers::SyncObjectD3D11::Init
    • Add tests
      • (Done) bug 1300699 - Add a gtest to prevent using basicCompositor with d3d11/d3d9TextureHost
  • gfx triage practice
  • Houdini Painting API
    • bug 1318573 - Refactor Canvas2D API to support a subset for Houdini Paint API
    • bug 1324740 - Implement PaintRenderingContext2D for Houdini API
    • (Done) bug 1331857 - Create a base class for CanvasRenderingContext2D
    • integrate with paint worklet and add test case for it
  • Campus presentation
    • 2/22 @ TsingHua University.
  • WebRenderer support
  • TODO
    • breackdown every item into one small bug(between two week or less than one month)
    • frequently bugzilla updates

Morris Tseng

  • Canvas support
    • 1322500 bug 1322500 - Using CanvasClient for canvas[Done]
    • Share ANGLE surface
      • 1328493 bug 1328493 - Need to investigate how to translate DXGI to angle gl texture. ~ 1 week
      • bug 1323316 - Use ANGLE for WebRender ~ 2 week
      • Integrate with gecko. ~ 1 week
        • Content need to know webrender is use ANGLE or not.
        • Binding code in external image callback.


  • Convert nsDisplayBullet
    • bug 1339683 - Convert nsDisplayBullet to DisplayItemLayer. ~ 1 week
    • bug 1336986 - Turn on layers.advanced.bullet-layers and fix tests fail. ~ 2 week
    • bug 1328494 - Support nsDisplayBullet ~ done
  • TODO
    • Come out plan about WebRender support before end of Feb

Peter Chang

  • OMTA
    • [Done]dispatch animation/animationdata (bug 1325022) ~ two weeks
    • Works in compositor side
      • [Done]Remove the layer dependency in SampleAnimation (bug 1328229/1332211) ~ two weeks
      • Add sampleanimation(bug 1345017) ~ two weeks
      • Calling new WR API with new animated value ~ one weeks
      • replay WRcmds in WRBridgeParent if animation exists (bug 1328231) ~ three weeks
        • recording WRCmds
        • update animation value from the related div
        • replay saved WRcmds
      • [WR][Done]Add support to Webrender(opacity and scaling) ~ Done by Glenn
    • Support OMTA testing flow
      • remove layerHandle for omta testing api(bug 1337889)
        • Save CompositorAnimationsId/Animation Data/animation value
        • Query transform/opacity based on CompositorAnimationsId
      • move OMTA testing methods into share sub-protocol(bug 1316906)

Vincent Liu

  • gfx Stability
    • Monitor crash bugs in the list - every day.
    • Study listed cash bug in two days. (reproduce, find a possible way to fix).
    • bug 1322741 - [Done]Crash in mozilla::layers::SyncObjectD3D11::Init
    • bug 1329849 - [Done]crash at null [@DataAtOffset] in gfx/2d/DataSurfaceHelpers.cpp:91
    • bug 1331925 - [Done]canvas.toBlob callback not invoked when height is 0
    • bug 1336351 - [Done]canvas.toBlob callback should be async when height or width is 0
    • bug 1331371 - [Working]Intermittent file:///C:/slave/test/build/tests/reftest/tests/layout/reftests/w3c-css/submitted/variables/variable-supports-13.html | application terminated with exit code 1 after Assertion failure: [GFX1]: Failed to create DrawTarget
    • bug 1337009 - [Working]Re-enable CSS shapes reftests and CSS text reftests on Windows debug builds
    • bug 1332980 - [Working]Assertion failure: aKernelUnitLengthX > 0 (aKernelUnitLengthX can not be a negative or zero value)
    • bug 1339751 - [Working]Add gfxCriticalNote to dump error message when calling into ipc FatalError.
    • Add information to indicate OOM
    • Triage with other people to find out better way to fix.
  • WebGL Conformance Test
    • bug 1323122 - [Done]Upgrade 2.0.0 Webgl conformance tests to top-of-tree - done
  • TODO (senior engs)
    • breackdown 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.

open qusetion

  • TODO (senior engs)
    • breackdown every item into one small bug(less than one month)
    • Copy WR items into gfx-wr-2017 with effort estimation
    • mentor topics
    • Team influence

Ethan

 disable fallback for reftest
 share the same mapping between c++/rust by code generator
 evaluate displayitem conversion performance/memory usage

Morris

 how to support image layer more efficiently(similar to jerry's question?)

Jerry

 image resource lifetime problem

peter

omta always repaint all pixel in WR